以下是一個用Python實現二分查找的代碼示例:
def binary_search(arr, target):
low = 0
high = len(arr) - 1
while low <= high:
mid = (low + high) // 2
if arr[mid] == target:
return mid
elif arr[mid] < target:
low = mid + 1
else:
high = mid - 1
return -1
# 測試代碼
arr = [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
target = 10
result = binary_search(arr, target)
if result != -1:
print("元素在索引位置", result)
else:
print("元素不在數組中")
在此示例中,我們定義了一個名為binary_search
的函數,該函數接受一個已排序的數組arr
和目標值target
作為參數。然后,我們使用low
和high
兩個指針分別指向數組的最低和最高索引。
接下來,我們使用一個循環來迭代,直到找到目標元素或low
大于high
為止。在每次迭代中,我們計算出中間索引mid
,并與目標元素進行比較。如果arr[mid]
等于目標元素,則返回mid
作為結果。如果arr[mid]
小于目標元素,則將low
指針移動到mid + 1
,否則將high
指針移動到mid - 1
。
如果循環結束時仍然沒有找到目標元素,則返回-1表示目標元素不在數組中。
最后,我們使用一些測試代碼來驗證binary_search
函數是否正確工作,并打印結果。在此示例中,目標元素10在數組中的索引位置為4。如果目標元素不在數組中,則打印"元素不在數組中"。