輸入一個有序的元素列表。如果要查詢的元素包含在列表中,二分查詢返回其位置;否則返回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 協議》,轉載必須註明作者和本文連結