Python 求数组局部最大值的实例

 更新时间:2019年11月26日 15:55:50   作者:RealEmperor  
今天小编就为大家分享一篇Python 求数组局部最大值的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

求数组局部最大值

给定一个无重复元素的数组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 检测到一个错误时,解释器就会指出当前流已经无法继续执行下去,这时候就出现了异常。
    2018-02-02
  • tensorflow训练中出现nan问题的解决

    tensorflow训练中出现nan问题的解决

    本篇文章主要介绍了tensorflow训练中出现nan问题的解决,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • Python 实现将numpy中的nan和inf,nan替换成对应的均值

    Python 实现将numpy中的nan和inf,nan替换成对应的均值

    这篇文章主要介绍了Python 实现将numpy中的nan和inf,nan替换成对应的均值,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • python使用OpenCV实现多目标跟踪

    python使用OpenCV实现多目标跟踪

    这篇文章主要介绍了python使用OpenCV实现多目标跟踪,如何在OpenCV中使用MultiTracker类实现多目标跟踪API。在深入了解详细信息之前,请查看下面列出的关于目标跟踪的帖子,以了解在OpenCV中实现的单个目标跟踪器的基础知识,需要的朋友可以参考一下
    2022-04-04
  • python之MSE、MAE、RMSE的使用

    python之MSE、MAE、RMSE的使用

    今天小编就为大家分享一篇python之MSE、MAE、RMSE的使用,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • 思考分析Python运算中 a+=b 和 a=a+b是否相等

    思考分析Python运算中 a+=b 和 a=a+b是否相等

    这篇文章主要为大家介绍了Python运算中a+=b和a=a+b是否相等及原理思考分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • Python3 Tkinter选择路径功能的实现方法

    Python3 Tkinter选择路径功能的实现方法

    今天小编就为大家分享一篇Python3 Tkinter选择路径功能的实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • python实点云分割k-means(sklearn)详解

    python实点云分割k-means(sklearn)详解

    这篇文章主要为大家详细介绍了Python实点云分割k-means,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05
  • Python中跨越多个文件使用全局变量的方法

    Python中跨越多个文件使用全局变量的方法

    全局变量是不属于函数范围的变量,可以在整个程序中使用,这表明全局变量也可以在函数体内部或外部使用,这篇文章主要介绍了Python中跨越多个文件使用全局变量,需要的朋友可以参考下
    2023-09-09
  • Python使用PIL.image保存图片

    Python使用PIL.image保存图片

    PIL库支持图像存储、显示和处理,它能够处理几乎所有图片格式,可以完成对图像的缩放、剪裁、叠加以及向图像添加线条、图像和文字等操作,下面这篇文章主要给大家介绍了关于Python使用PIL.image保存图片的相关资料,需要的朋友可以参考下
    2022-12-12

最新评论