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 相关文章推荐
Python3实现Web网页图片下载
Jan 28 Python
python 调用HBase的简单实例
Dec 18 Python
浅谈python装饰器探究与参数的领取
Dec 01 Python
浅谈Scrapy框架普通反爬虫机制的应对策略
Dec 28 Python
Python中类的创建和实例化操作示例
Feb 27 Python
Python中函数的基本定义与调用及内置函数详解
May 13 Python
python实现键盘输入的实操方法
Jul 16 Python
python单线程下实现多个socket并发过程详解
Jul 27 Python
关于pandas的离散化,面元划分详解
Nov 22 Python
小 200 行 Python 代码制作一个换脸程序
May 12 Python
Selenium自动化测试工具使用方法汇总
Jun 12 Python
Python偏函数实现原理及应用
Nov 20 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
用PHP和ACCESS写聊天室(八)
2006/10/09 PHP
mysql_fetch_assoc和mysql_fetch_row的功能加起来就是mysql_fetch_array
2007/01/15 PHP
有关 PHP 和 MySQL 时区的一点总结
2008/03/26 PHP
实现PHP多线程异步请求的3种方法
2014/01/17 PHP
JS location几个方法小姐
2008/07/09 Javascript
Javascript 获取字符串字节数的多种方法
2009/06/02 Javascript
javaScript Array(数组)相关方法简述
2009/07/25 Javascript
JQuery Dialog的内存泄露问题解决方法
2010/06/18 Javascript
JavaScript 注册事件代码
2011/01/27 Javascript
jquery实现的简单二级菜单效果代码
2015/09/22 Javascript
基于jQuery实现点击最后一行实现行自增效果的表格
2016/01/12 Javascript
jQuery使用中可能被XSS攻击的一些危险环节提醒
2016/05/24 Javascript
JS+canvas实现的五子棋游戏【人机大战版】
2017/07/19 Javascript
Node.js应用设置安全的沙箱环境
2018/04/23 Javascript
Vue EventBus自定义组件事件传递
2018/06/25 Javascript
vue踩坑记录之数组定义和赋值问题
2019/03/20 Javascript
详解微信小程序文件下载--视频和图片
2019/04/24 Javascript
three.js利用卷积法如何实现物体描边效果
2019/11/27 Javascript
JS实现手写 forEach算法示例
2020/04/29 Javascript
[56:12]LGD vs Optic Supermajor小组赛D组胜者组决赛 BO3 第一场 6.3
2018/06/04 DOTA
[03:41]2018完美盛典-《Fight With Us》
2018/12/16 DOTA
python聊天程序实例代码分享
2013/11/18 Python
零基础写python爬虫之爬虫编写全记录
2014/11/06 Python
Python中的time模块与datetime模块用法总结
2016/06/30 Python
Python 元类实例解析
2018/04/04 Python
python实现雨滴下落到地面效果
2018/06/21 Python
python列表,字典,元组简单用法示例
2019/07/11 Python
pyinstaller 3.6版本通过pip安装失败的解决办法(推荐)
2020/01/18 Python
统计员岗位职责
2013/11/14 职场文书
小学教师办公室制度
2014/02/03 职场文书
2014年三八妇女节活动总结
2014/03/01 职场文书
企业节能减排实施方案
2014/03/19 职场文书
群众路线专项整治方案
2014/10/27 职场文书
中国合伙人观后感
2015/06/02 职场文书
研究生学习计划书应该怎么写?
2019/09/10 职场文书
2020年基层司法所建设情况调研报告
2019/11/30 职场文书