1. 程式人生 > 其它 >演算法圖解學習筆記(一)——二分法

演算法圖解學習筆記(一)——二分法

技術標籤:演算法圖解學習筆記二分法演算法python

Python實現-----二分法

----原理:二分法查詢目標元素,就是依次選取中間元素判斷是大了還是小了,如果大了就選取之前的一半,重複以上步驟(選取中間元素之後再進行判斷),知道最後查詢出所需要的元素。切記如果能夠使用二分法的序列一定是有序的序列

時間複雜度:O(log2n);

# 二分法
# 定義一個函式,傳入一個list和一個元素
def binary_search(list, item):
    # 定義 low 和high是要查詢的列表的位置
    low = 0
    high = len(list) - 1
    # 只要範圍沒有縮小到只剩下一個元素,就繼續查詢檢查中間元素
    while low <= high:
        mid = int((low + high) / 2)
        guess = list[mid]
        # 檢查中間元素,大,小,相等
        if guess == item:
            return mid
        if guess > item:
            high = mid - 1
        else:
            low = mid + 1
    return -1

if __name__ == '__main__':
    my_list = [1, 3, 5, 7, 9]
    print(my_list)
    index = binary_search(my_list, 99)
    print(index)

執行結果