pythonの二分探索アルゴリズムの書き方
以下是一个用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にある。目的の要素が配列中に存在しない場合は「要素は配列内にありません」と出力する。