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实现网络测试的脚本分享
May 26 Python
python 阶乘累加和的实例
Feb 01 Python
Python实现九宫格式的朋友圈功能内附“马云”朋友圈
May 07 Python
python中hasattr()、getattr()、setattr()函数的使用
Aug 16 Python
Python全面分析系统的时域特性和频率域特性
Feb 26 Python
python+Selenium自动化测试——输入,点击操作
Mar 06 Python
Python使用Matlab命令过程解析
Jun 04 Python
pytorch 常用函数 max ,eq说明
Jun 28 Python
如何在mac下配置python虚拟环境
Jul 06 Python
基于python实现判断字符串是否数字算法
Jul 10 Python
termux中matplotlib无法显示中文问题的解决方法
Jan 11 Python
告别网页搜索!教你用python实现一款属于自己的翻译词典软件
Jun 03 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
Wordpress php 分页代码
2009/10/21 PHP
php 无极分类(递归)实现代码
2010/01/05 PHP
shell脚本作为保证PHP脚本不挂掉的守护进程实例分享
2013/07/15 PHP
php获取文件内容最后一行示例
2014/01/09 PHP
php文件缓存类用法实例分析
2015/04/22 PHP
php异常处理方法实例汇总
2015/06/24 PHP
10个php函数实用却不常见
2015/10/13 PHP
Yii2分页的使用及其扩展方法详解
2016/05/23 PHP
关闭浏览器输入框自动补齐 兼容IE,FF,Chrome等主流浏览器
2014/02/11 Javascript
jquery解析JSON数据示例代码
2014/03/17 Javascript
js实现格式化金额,字符,时间的方法
2015/02/26 Javascript
总结jQuery插件开发中的一些要点
2016/05/16 Javascript
js转换对象为xml
2017/02/17 Javascript
使用JS实现气泡跟随鼠标移动的动画效果
2017/09/16 Javascript
JavaScript对象的特性与实践应用深入详解
2018/12/30 Javascript
vue请求服务器数据后绑定不上的解决方法
2019/10/30 Javascript
Webpack3+React16代码分割的实现
2021/03/03 Javascript
Python的Django框架中的Context使用
2015/07/15 Python
利用 Monkey 命令操作屏幕快速滑动
2016/12/07 Python
如何在python中使用selenium的示例
2017/12/26 Python
python 接收处理外带的参数方法
2018/12/03 Python
Python3.5集合及其常见运算实例详解
2019/05/01 Python
Django实现发送邮件功能
2019/07/18 Python
解决python有时候import不了当前的包问题
2019/08/28 Python
Django 后台带有字典的列表数据与页面js交互实例
2020/04/03 Python
详解pandas赋值失败问题解决
2020/11/29 Python
Python之qq自动发消息的示例代码
2021/02/18 Python
编写html5时调试发现脚本php等网页js、css等失效
2013/12/31 HTML / CSS
来自美国主售篮球鞋的零售商店:KICKSUSA
2017/11/28 全球购物
HomeAway的巴西品牌:Alugue Temporada
2018/04/10 全球购物
英文版销售经理个人求职信
2013/11/20 职场文书
英文简历中的自我评价用语
2013/12/09 职场文书
管理专员自荐信
2014/01/26 职场文书
超市开业庆典策划方案
2014/05/14 职场文书
领导班子四风表现材料
2014/08/23 职场文书
python基础之文件操作
2021/10/24 Python