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中hashlib模块用法示例
Oct 30 Python
一篇文章快速了解Python的GIL
Jan 12 Python
python操作excel的包(openpyxl、xlsxwriter)
Jun 11 Python
通过python顺序修改文件名字的方法
Jul 11 Python
Empty test suite.(PyCharm程序运行错误的解决方法)
Nov 30 Python
python 有效的括号的实现代码示例
Nov 11 Python
python 循环数据赋值实例
Dec 02 Python
python使用rsa非对称加密过程解析
Dec 28 Python
python 截取XML中bndbox的坐标中的图像,另存为jpg的实例
Mar 10 Python
解决更改AUTH_USER_MODEL后出现的问题
May 14 Python
python爬虫实例之获取动漫截图
May 31 Python
python实现对doc、txt、xls等文档的读写操作
Apr 02 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
关于PHP5 Session生命周期介绍
2010/03/02 PHP
PHP fopen()和 file_get_contents()应用与差异介绍
2014/03/19 PHP
Yii分页用法实例详解
2014/12/04 PHP
php版微信发红包接口用法示例
2016/09/23 PHP
php.ini中date.timezone设置详解
2016/11/20 PHP
PHP常用字符串函数小结(推荐)
2018/08/05 PHP
PHP调用QQ互联接口实现QQ登录网站功能示例
2019/10/24 PHP
PHP反射基础知识回顾
2020/09/10 PHP
jquery ajax传递中文参数乱码问题及解决方法说明
2014/02/07 Javascript
javascript实现页面内关键词高亮显示代码
2014/04/03 Javascript
使用jQuery不判断浏览器高度解决iframe自适应高度问题
2014/12/16 Javascript
js实现宇宙星空背景效果的方法
2015/03/03 Javascript
使用JavaScript制作一个简单的计数器的方法
2015/07/07 Javascript
深入学习JavaScript中的Rest参数和参数默认值
2015/07/28 Javascript
jQuery实现简单的图片查看器
2020/09/11 Javascript
微信小程序scroll-view实现横向滚动和上拉加载示例
2017/03/06 Javascript
JavaScript原生实现观察者模式的示例
2017/12/15 Javascript
Node.js实现mysql连接池使用事务自动回收连接的方法示例
2018/02/03 Javascript
微信小程序bindtap事件与冒泡阻止详解
2019/08/08 Javascript
Vue.js自定义指令学习使用详解
2019/10/19 Javascript
解决Vue项目打包后打开index.html页面显示空白以及图片路径错误的问题
2019/10/25 Javascript
vue绑定数字类型 value为数字的实例
2020/08/31 Javascript
Vue使用路由钩子拦截器beforeEach和afterEach监听路由
2020/11/16 Javascript
vue使用element-ui实现表单验证
2020/12/13 Vue.js
[00:32]DOTA2上海特级锦标赛 COL战队宣传片
2016/03/04 DOTA
使用py2exe在Windows下将Python程序转为exe文件
2016/03/04 Python
Python 虚拟空间的使用代码详解
2019/06/10 Python
Python跑循环时内存泄露的解决方法
2020/01/13 Python
Python爬取股票信息,并可视化数据的示例
2020/09/26 Python
python实现定时发送邮件到指定邮箱
2020/12/23 Python
AP澳洲中文网:澳洲正品直邮,包税收件无忧
2019/07/12 全球购物
北京华建集团SQL面试题
2014/06/03 面试题
成龙洗发水广告词
2014/03/14 职场文书
2015年学校消防安全工作总结
2015/10/14 职场文书
承诺书应该怎么写?
2019/09/10 职场文书
详解pytorch创建tensor函数
2022/03/22 Python