Python 求数组局部最大值的实例


Posted in Python onNovember 26, 2019

求数组局部最大值

给定一个无重复元素的数组A[0…N-1],求找到一个该数组的局部最大值。规定:在数组边界外的值无穷小。即:A[0]>A[-1],A[N-1] >A[N]。

显然,遍历一遍可以找到全局最大值,而全局最大值显然是局部最大值。

可否有更快的办法?

算法描述

使用索引left、right分别指向数组首尾。

求中点 mid = ( left + right ) / 2

A[mid]>A[mid+1],丢弃后半段:right=mid

A[mid+1]>A[mid],丢弃前半段:left=mid+1

递归直至left==right

时间复杂度为O(logN)。

Python代码

def local_maximum(li):
  if li is None:
    return
  left = 0
  right = len(li) - 1
  while left < right:
    mid = int((left + right) / 2)
    if li[mid] > li[mid + 1]:
      right = mid
    else:
      left = mid + 1
  return li[left]


if __name__ == '__main__':
  li = [1, 5, 2, 3, 4, 0]
  result = local_maximum(li)
  print(result)

输出结果:4

以上这篇Python 求数组局部最大值的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python中使用OpenCV进行人脸检测的例子
Apr 18 Python
python压缩文件夹内所有文件为zip文件的方法
Jun 20 Python
Python实现二叉搜索树
Feb 03 Python
在windows系统中实现python3安装lxml
Mar 23 Python
基于python select.select模块通信的实例讲解
Sep 21 Python
python利用socketserver实现并发套接字功能
Jan 26 Python
python获取命令行输入参数列表的实例代码
Jun 23 Python
python 解决动态的定义变量名,并给其赋值的方法(大数据处理)
Nov 10 Python
Django框架实现的普通登录案例【使用POST方法】
May 15 Python
利用python实现PSO算法优化二元函数
Nov 13 Python
PyTorch的torch.cat用法
Jun 28 Python
pycharm 使用anaconda为默认环境的操作
Feb 05 Python
Python 实现取多维数组第n维的前几位
Nov 26 #Python
python获取array中指定元素的示例
Nov 26 #Python
Flask之pipenv虚拟环境的实现
Nov 26 #Python
Python 根据数据模板创建shapefile的实现
Nov 26 #Python
Python实现直播推流效果
Nov 26 #Python
Python利用matplotlib绘制约数个数统计图示例
Nov 26 #Python
创建Shapefile文件并写入数据的例子
Nov 26 #Python
You might like
php异常:Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE  eval()'d code error
2011/05/19 PHP
初学PHP的朋友 经常问的一些问题。不断更新
2011/08/11 PHP
学习php设计模式 php实现门面模式(Facade)
2015/12/07 PHP
PHP中header用法小结
2016/05/23 PHP
javascript 二维数组的实现与应用
2010/03/16 Javascript
从零开始学习jQuery (四) jQuery中操作元素的属性与样式
2011/02/23 Javascript
jQuery代码优化之基本事件
2011/11/01 Javascript
javascript动态创建表格及添加数据实例详解
2015/05/13 Javascript
javascript中的previousSibling和nextSibling的正确用法
2015/09/16 Javascript
基于jquery实现图片相关操作(重绘、获取尺寸、调整大小、缩放)
2015/12/25 Javascript
getElementById().innerHTML与getElementById().value的区别
2016/10/27 Javascript
AngularJS中的缓存使用
2017/01/11 Javascript
微信小程序 实现列表项滑动显示删除按钮的功能
2017/04/13 Javascript
AngularJS select设置默认值的实现方法
2017/08/25 Javascript
红黑树的插入详解及Javascript实现方法示例
2018/03/26 Javascript
基于vue和react的spa进行按需加载的实现方法
2018/09/29 Javascript
一文快速了解JQuery中的AJAX
2019/05/31 jQuery
原生js实现贪食蛇小游戏的思路详解
2019/11/26 Javascript
js防抖函数和节流函数使用场景和实现区别示例分析
2020/04/11 Javascript
jQuery三组基本动画与自定义动画操作实例总结
2020/05/09 jQuery
解决Vue watch里调用方法的坑
2020/11/07 Javascript
[06:25]第二届DOTA2亚洲邀请赛主赛事第二天比赛集锦.mp4
2017/04/03 DOTA
python中退出多层循环的方法
2018/11/27 Python
pyqt5 QProgressBar清空进度条的实例
2019/06/21 Python
django url到views参数传递的实例
2019/07/19 Python
Python中拆分字符串的操作方法
2019/07/23 Python
Python从MySQL数据库中面抽取试题,生成试卷
2021/01/14 Python
html5的canvas实现3d雪花飘舞效果
2013/12/27 HTML / CSS
美国一家主营日韩美妆护肤品的在线商店:iMomoko
2016/09/11 全球购物
BudgetAir印度:预订航班、酒店和汽车租赁
2019/07/07 全球购物
淘宝客服自我总结鉴定
2014/01/25 职场文书
社会稳定风险评估方案
2014/06/02 职场文书
小学生教师节演讲稿
2014/09/03 职场文书
写给纪委的违纪检讨书
2015/05/05 职场文书
2016年教育局“我们的节日——端午节”主题活动总结
2016/04/01 职场文书
tomcat下部署jenkins的方法
2022/05/06 Servers