国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Python > 正文

Python 求數組局部最大值的實例

2024-09-09 19:02:59
字體:
來源:轉載
供稿:網友

求數組局部最大值

給定一個無重復元素的數組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 求數組局部最大值的實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網之家。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 汝城县| 上栗县| 沈阳市| 越西县| 伊宁市| 册亨县| 宜城市| 丰都县| 依安县| 惠来县| 无锡市| 莱州市| 古田县| 合川市| 江油市| 湖北省| 内江市| 安国市| 天津市| 泾阳县| 西昌市| 江山市| 杂多县| 高邮市| 平武县| 博爱县| 荣成市| 德令哈市| 金坛市| 绥滨县| 文化| 长顺县| 武宁县| 昌吉市| 巢湖市| 临城县| 湖南省| 固始县| 平远县| 石河子市| 古浪县|