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脚本在Nginx和uwsgi上部署MoinMoin的教程
May 05 Python
Python进行数据提取的方法总结
Aug 22 Python
Python代码实现KNN算法
Dec 20 Python
python使用opencv驱动摄像头的方法
Aug 03 Python
pycharm 配置远程解释器的方法
Oct 28 Python
Django Rest framework之权限的实现示例
Dec 17 Python
Python实现图片批量加入水印代码实例
Nov 30 Python
pytorch实现MNIST手写体识别
Feb 14 Python
Python猴子补丁Monkey Patch用法实例解析
Mar 23 Python
Jupyter Notebook打开任意文件夹操作
Apr 14 Python
python实现批量转换图片为黑白
Jun 16 Python
Python调用JavaScript代码的方法
Oct 27 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
咖啡机如何保养和日常清洁?
2021/03/03 冲泡冲煮
php中调用其他系统http接口的方法说明
2014/02/28 PHP
微信公众平台接口开发入门示例
2014/12/24 PHP
详细解读PHP的Yii框架中登陆功能的实现
2015/08/21 PHP
prototype1.4中文手册
2006/09/22 Javascript
JavaScript之Getters和Setters 平台支持等详细介绍
2012/12/07 Javascript
js工具方法弹出蒙版
2013/05/08 Javascript
jquery自定义函数的多种方法
2014/01/09 Javascript
文本域中换行符的替换示例
2014/03/04 Javascript
教你如何使用node.js制作代理服务器
2014/11/26 Javascript
jQuery中size()方法用法实例
2014/12/27 Javascript
JavaScript实现SHA-1加密算法的方法
2015/03/11 Javascript
详解JavaScript的while循环的使用
2015/06/03 Javascript
jQuery检查事件是否触发的方法
2015/06/26 Javascript
学习Angularjs分页指令
2016/07/01 Javascript
基于jQuery实现火焰灯效果导航菜单
2017/01/04 Javascript
详解React之key的使用和实践
2018/09/29 Javascript
4个顶级JavaScript高级文本编辑器
2018/10/10 Javascript
vue-cli中使用高德地图的方法示例
2019/03/28 Javascript
[05:26]TI10典藏宝瓶套装外观展示
2020/07/03 DOTA
python实现监控某个服务 服务崩溃即发送邮件报告
2018/06/21 Python
python利用pandas将excel文件转换为txt文件的方法
2018/10/23 Python
PyTorch实现ResNet50、ResNet101和ResNet152示例
2020/01/14 Python
python dumps和loads区别详解
2020/02/04 Python
Python读取文件内容为字符串的方法(多种方法详解)
2020/03/04 Python
Python基于pandas爬取网页表格数据
2020/05/11 Python
详解python如何引用包package
2020/06/07 Python
中国一家综合的外贸B2C电子商务网站:DealeXtreme(DX)
2020/03/10 全球购物
什么是触发器(trigger)? 触发器有什么作用?
2013/09/18 面试题
党员个人对照检查材料思想汇报
2014/09/16 职场文书
2015年学校远程教育工作总结
2015/07/20 职场文书
《鸟的天堂》教学反思
2016/02/19 职场文书
安全责任协议书范本
2016/03/23 职场文书
某药房的新员工入职告知书!
2019/07/15 职场文书
正确的理解和使用Django信号(Signals)
2021/04/14 Python
Python 如何实现文件自动去重
2021/06/02 Python