T由數組的有序性可知array[k,k+1,……,high]>T;故新的區間為array[low,……,K-1]b.array[k]復制代碼代碼如下:#!/usr/bin/python#-*-coding:utf-8-*-def" />

日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Python實現二分法算法實例

系統 1767 0

1.算法:(設查找的數組期間為array[low, high])

(1)確定該期間的中間位置K
(2)將查找的值T與array[k]比較。若相等,查找成功返回此位置;否則確定新的查找區域,繼續二分查找。區域確定如下:

a.array[k]>T 由數組的有序性可知array[k,k+1,……,high]>T;故新的區間為array[low,……,K-1]
b.array[k]

復制代碼 代碼如下:

#!/usr/bin/python
# -*- coding: utf-8 -*-

def BinarySearch(array,t):
low = 0
height = len(array)-1
while low <= height:
mid = (low+height)/2
if array[mid] < t:
low = mid + 1

elif array[mid] > t:
height = mid - 1

else:
return array[mid]

return -1

if __name__ == "__main__":
print BinarySearch([1,2,3,34,56,57,78,87],57)

結果:57

3.時間復雜度:O(log2n);

注意:二分查找的前提必須待查找的序列有序。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。。?/p>

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 宁海县| 都安| 松溪县| 桦川县| 普定县| 浦东新区| 延吉市| 托克托县| 江都市| 内乡县| 讷河市| 崇义县| 多伦县| 公安县| 阿克陶县| 开封市| 乌兰察布市| 宁都县| 东港市| 永安市| 石柱| 台江县| 将乐县| 宜川县| 太康县| 麟游县| 惠安县| 鸡西市| 汉川市| 定兴县| 香河县| 农安县| 同德县| 井陉县| 简阳市| 江山市| 贺州市| 万载县| 丁青县| 神农架林区| 和顺县|