キン〇マハムスター佐藤  2021/03/10更新

Python再帰なしのバイナリーサーチ


Pythonのバイナリーサーチ

もしかしたら何かのライブラリにあるかもしれないけど


def binary_search(data,value):
  pos_left = 0
  pos_right =len(data)-1
  while pos_left <= pos_right:
    pos_mid = (pos_left + pos_right) //2
    if data[pos_mid] == value:
      return pos_mid
    elif data[pos_mid] < value:
      pos_left = pos_mid + 1 #探索範囲左端を中央+1に変更
    else:
      pos_right= pos_mid - 1 #探索範囲右端を中央-1に変更
  return None

data = [1,3,14,256,555,1002,2080,4490]
res = binary_search(data,555)
if res != None:
    print(res)
else:
    print("見つかりません")




タイトルとURLをコピーしました