演算法一 二分查詢( by Python)

SayaXue發表於2018-02-01

1.查詢問題分析

假設你要在字典中查詢一個單詞,而該字典包含24000個單詞,你認為每種查詢最多需要多少步? 如果要查詢的單詞位於字典末尾,使用簡單查詢將需要24000步。使用二分查詢時,每次排除一半單詞,直到最後只剩下一個單詞。

這裡寫圖片描述

2.Python實現二分查詢

def binary_search(list, item):
    low = 0
    height = len(list)-1

    while low <= height:
        mid = (low+height) / 2
        temp = list[mid]

        if temp == item:
            return  mid
        if temp > item:
            height = mid-1
        else:
            low = mid+1

    return None

mdata = [1, 4, 7, 9, 14, 16]
index = binary_search(mdata, 14)
print("index=", index)
複製程式碼

相關文章