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 相关文章推荐
ansible作为python模块库使用的方法实例
Jan 17 Python
Python向Excel中插入图片的简单实现方法
Apr 24 Python
Python八大常见排序算法定义、实现及时间消耗效率分析
Apr 27 Python
Sanic框架路由用法实例分析
Jul 16 Python
对matplotlib改变colorbar位置和方向的方法详解
Dec 13 Python
Python搭建代理IP池实现接口设置与整体调度
Oct 27 Python
Python socket模块ftp传输文件过程解析
Nov 05 Python
Django通过dwebsocket实现websocket的例子
Nov 15 Python
Python常用模块logging——日志输出功能(示例代码)
Nov 20 Python
python GUI库图形界面开发之PyQt5信号与槽基本操作
Feb 25 Python
浅谈python元素如何去重,去重后如何保持原来元素的顺序不变
Feb 28 Python
Python可视化工具如何实现动态图表
Oct 23 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
重新封装zend_soap实现http连接安全认证的php代码
2011/01/12 PHP
解决FastCGI 进程超过了配置的活动超时时限的问题
2013/07/03 PHP
PHP进制转换实例分析(2,8,16,36,64进制至10进制相互转换)
2017/02/04 PHP
PHP生成zip压缩包的常用方法示例
2019/08/22 PHP
优化JavaScript脚本的性能的几个注意事项
2006/12/22 Javascript
关于JS字符串函数String.replace()
2013/04/07 Javascript
jquery实现ajax提交form表单的方法总结
2014/03/03 Javascript
JavaScript 开发工具webstrom使用指南
2014/12/09 Javascript
NodeJS学习笔记之MongoDB模块
2015/01/13 NodeJs
Java File类的常用方法总结
2015/03/18 Javascript
AngularJS基础教程之简单介绍
2015/09/27 Javascript
JavaScript中Date对象的常用方法示例
2015/10/24 Javascript
AngularJS基础 ng-src 指令简单示例
2016/08/03 Javascript
基于Javascript倒计时效果
2016/12/22 Javascript
JS中的BOM应用
2018/02/02 Javascript
详解微信小程序框架wepy踩坑记录(与vue对比)
2019/03/12 Javascript
Layui 数据表格批量删除和多条件搜索的实例
2019/09/04 Javascript
layer.confirm()右边按钮实现href的例子
2019/09/27 Javascript
highcharts.js数据绑定方式代码实例
2019/11/13 Javascript
node.js开发辅助工具nodemon安装与配置详解
2020/02/06 Javascript
[01:16:01]VGJ.S vs Mski Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
Python中模块与包有相同名字的处理方法
2017/05/05 Python
python进阶_浅谈面向对象进阶
2017/08/17 Python
python常见字符串处理函数与用法汇总
2019/10/30 Python
Python的几种主动结束程序方式
2019/11/22 Python
python分布式计算dispy的使用详解
2019/12/22 Python
TensorFlow tensor的拼接实例
2020/01/19 Python
Python编程快速上手——PDF文件操作案例分析
2020/02/28 Python
Pandas将列表(List)转换为数据框(Dataframe)
2020/04/24 Python
浅谈Tensorflow加载Vgg预训练模型的几个注意事项
2020/05/26 Python
纯css3实现图片翻牌特效
2015/03/10 HTML / CSS
Boda Skins皮衣官网:奢侈皮夹克,全球配送
2016/12/15 全球购物
上课迟到检讨书
2014/02/19 职场文书
环保标语口号
2014/06/13 职场文书
四风对照检查材料思想汇报
2014/09/20 职场文书
详解Python描述符的工作原理
2021/06/11 Python