Python_演算法學習

xuanxuanQueen發表於2019-03-07

輸入一個有序的元素列表。如果要查詢的元素包含在列表中,二分查詢返回其位置;否則返回NULL。

示例程式碼

def binary_search(list, item) :  //函式接受一個有序陣列list和一個元素item
    //陣列的起始位置low與結束位置high
    low = 0
    high = len(list) - 1
    //只要範圍沒有縮小到只包含一個元素
    while low <= high 
    //檢查中間元素
        mid = (low + high) / 2
        guess = list[mid]
    //找到了元素
        if guess == item :
        //返回陣列下標
            return mid
    //猜大了
        if guess > item :
        //向前移動一位,縮小取值範圍
            high = mid - 1
    //猜小了 
        else :
        //向後移動一位,縮小取值範圍
            low = mid + 1
    return None
my_list = [1,3,5,7,9]
print binary_search(my_list, 3) => 1
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章