国产探花免费观看_亚洲丰满少妇自慰呻吟_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 求數組局部最大值的實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網之家。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 全椒县| 神木县| 罗平县| 祁阳县| 冷水江市| 玉屏| 麻城市| 中江县| 镇康县| 怀集县| 纳雍县| 偃师市| 平罗县| 博兴县| 务川| 凤阳县| 汕尾市| 莆田市| 耒阳市| 建宁县| 邮箱| 望奎县| 莒南县| 正宁县| 筠连县| 德庆县| 都兰县| 正定县| 越西县| 罗定市| 竹北市| 岱山县| 平舆县| 宜州市| 海原县| 五莲县| 万宁市| 江华| 延吉市| 玉田县| 丰都县|