パイソンの二分検索アルゴリズムのコードはどのように書けばいいですか?

次に Python で実装した単純な二分探索アルゴリズムのコードを示します。

def binary_search(arr, target):
    left = 0
    right = len(arr) - 1
    
    while left <= right:
        mid = (left + right) // 2
        
        if arr[mid] == target:
            return mid
        elif arr[mid] < target:
            left = mid + 1
        else:
            right = mid - 1
    
    return -1

そのアルゴリズムを使用する場合、整列された配列 arr と検出する対象値 target を入力する必要があります。関数は、その配列で対象値のインデックスを返しますが、対象値が配列にない場合、-1 を返します。

以下に例を挙げます。

arr = [2, 5, 8, 12, 16, 23, 38, 56, 72, 91]
target = 23

result = binary_search(arr, target)
if result != -1:
    print(f"目标值 {target} 在数组中的索引为 {result}")
else:
    print("目标值不在数组中")

ネイティブで日本語に言い換えると、

目标值 23 在数组中的索引为 5
bannerAds