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怎么学好python?
Oct 07 Python
Python读取mp3中ID3信息的方法
Mar 05 Python
使用Python构建Hopfield网络的教程
Apr 14 Python
Windows平台Python连接sqlite3数据库的方法分析
Jul 12 Python
python itchat实现微信自动回复的示例代码
Aug 14 Python
Python PyQt5标准对话框用法示例
Aug 23 Python
详解python中的 is 操作符
Dec 26 Python
python字符串常用方法
Jun 14 Python
python修改字典键(key)的方法
Aug 05 Python
已安装tensorflow-gpu,但keras无法使用GPU加速的解决
Feb 07 Python
Matplotlib绘制混淆矩阵的实现
May 27 Python
python字符串的多行输出的实例详解
Jun 08 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
phpfans留言版用到的install.php
2007/01/04 PHP
让PHP支持页面回退的两种方法[转]
2007/02/14 PHP
php自定义hash函数实例
2015/05/05 PHP
24条货真价实的PHP代码优化技巧
2016/07/28 PHP
yii2实现分页,带搜索的分页功能示例
2017/01/07 PHP
PHP基于timestamp和nonce实现的防止重放攻击方案分析
2019/07/26 PHP
使用jquery与图片美化checkbox和radio控件的代码(打包下载)
2010/11/11 Javascript
JavaScript 学习历程和心得分享
2010/12/12 Javascript
javascript中对Attr(dom中属性)的操作示例讲解
2013/12/02 Javascript
BootStrap iCheck插件全选与获取value值的解决方法
2016/08/24 Javascript
修改jquery中dialog的title属性方法(推荐)
2016/08/26 Javascript
JS 拼凑字符串的简单实例
2016/09/02 Javascript
详解JavaScript权威指南之对象
2016/09/27 Javascript
JS抛物线动画实例制作
2018/02/24 Javascript
微信小程序ibeacon三点定位详解
2018/10/31 Javascript
element-ui 时间选择器限制范围的实现(随动)
2019/01/09 Javascript
Vue中CSS动画原理的实现
2019/02/13 Javascript
vue 实现超长文本截取,悬浮框提示
2020/07/29 Javascript
在Python中使用正则表达式的方法
2015/08/13 Python
Django自定义用户认证示例详解
2018/03/14 Python
django js实现部分页面刷新的示例代码
2018/05/28 Python
JSON文件及Python对JSON文件的读写操作
2018/10/07 Python
Python面向对象实现一个对象调用另一个对象操作示例
2019/04/08 Python
Python的matplotlib绘图如何修改背景颜色的实现
2019/07/16 Python
numpy.random.shuffle打乱顺序函数的实现
2019/09/10 Python
python爬虫爬取笔趣网小说网站过程图解
2019/11/18 Python
python turtle 绘制太极图的实例
2019/12/18 Python
python词云库wordcloud的使用方法与实例详解
2020/02/17 Python
python 简单的调用有道翻译
2020/11/25 Python
澳大利亚最好的在线时尚精品店:Princess Polly
2018/01/03 全球购物
股东协议书
2014/04/14 职场文书
社区学习雷锋活动总结
2014/04/25 职场文书
2014年师德师风学习材料
2014/05/16 职场文书
农村婚庆主持词
2015/06/29 职场文书
分析MySQL抛出异常的几种常见解决方式
2021/05/18 MySQL
MySQL 分区表中分区键为什么必须是主键的一部分
2022/03/17 MySQL