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实现换行符转换的脚本的教程
Apr 16 Python
Python守护进程用法实例分析
Jun 04 Python
对web.py设置favicon.ico的方法详解
Dec 04 Python
python定时按日期备份MySQL数据并压缩
Apr 19 Python
python3+PyQt5 数据库编程--增删改实例
Jun 17 Python
python抓取多种类型的页面方法实例
Nov 20 Python
一文了解python 3 字符串格式化 F-string 用法
Mar 04 Python
详解在Python中使用Torchmoji将文本转换为表情符号
Jul 27 Python
解决c++调用python中文乱码问题
Jul 29 Python
Python爬虫获取豆瓣电影并写入excel
Jul 31 Python
使用Python获取爱奇艺电视剧弹幕数据的示例代码
Jan 12 Python
python定义具名元组实例操作
Feb 28 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
ThinkPHP提交表单时默认自动转义的解决方法
2014/11/25 PHP
php多次include后导致全局变量global失效的解决方法
2015/02/28 PHP
php判断文件夹是否存在不存在则创建
2015/04/09 PHP
利用PHP实现开心消消乐的算法示例
2017/10/12 PHP
jquery trim() 功能源代码
2011/02/14 Javascript
基于jQuery实现的水平和垂直居中的div窗口
2011/08/08 Javascript
JavaScript之编码规范 推荐
2012/05/23 Javascript
jquery formValidator插件ajax验证 内容不做任何修改再离开提示错误的bug解决方法
2013/01/04 Javascript
jquery.autocomplete修改实现键盘上下键自动填充示例
2013/11/19 Javascript
javascript 实现 原路返回
2015/01/21 Javascript
IE8下jQuery改变png图片透明度时出现的黑边
2015/08/30 Javascript
Angular2 (RC5) 路由与导航详解
2016/09/21 Javascript
express文件上传中间件Multer详解
2016/10/24 Javascript
如何提高javascript加载速度
2016/12/26 Javascript
Node.js使用gm拼装sprite图片
2017/07/04 Javascript
微信小程序使用map组件实现检索(定位位置)周边的POI功能示例
2019/01/23 Javascript
mpvue性能优化实战技巧(小结)
2019/04/17 Javascript
JavaScript实现随机点名器实例详解
2019/05/07 Javascript
React 全自动数据表格组件——BodeGrid的实现思路
2019/06/12 Javascript
详解一些适用于Node.js的命名约定
2019/12/08 Javascript
vue打开子组件弹窗都刷新功能的实现
2020/09/21 Javascript
python插入排序算法实例分析
2015/07/03 Python
Python 解决中文写入Excel时抛异常的问题
2018/05/03 Python
django框架防止XSS注入的方法分析
2019/06/21 Python
Django之路由层的实现
2019/09/09 Python
在Python中利用pickle保存变量的实例
2019/12/30 Python
python GUI编程(Tkinter) 创建子窗口及在窗口上用图片绘图实例
2020/03/04 Python
Keras之自定义损失(loss)函数用法说明
2020/06/10 Python
自荐信的基本格式
2014/02/22 职场文书
地下停车场租赁协议范本
2014/10/07 职场文书
毕业实习计划书
2015/01/16 职场文书
饭店服务员岗位职责
2015/02/09 职场文书
出国留学单位推荐信
2015/03/26 职场文书
工作自我评价范文
2019/03/21 职场文书
导游词之临安白水涧
2019/11/05 职场文书
SQLServer中exists和except用法介绍
2021/12/04 SQL Server