Pythonが学ぶ学校教育(二分検索法)


二分ルックアップ:二分ルックアップはデータ量が大きい場合に適していますが、データは先に順番を決める必要があります.主な考え方は,(検索する配列区間をarray[low,high])(1)その区間の中間位置K(2)を特定して検索する値Tをarray[k]と比較することである.等しい場合、検索は正常にこの場所に戻ります.そうでなければ、新しい検索領域を特定し、二分検索を続行します.領域決定は、a.array[k]>Tが配列の秩序性からarray[k,k+1,......,high]>Tであることが分かる.従って新しい区間はarray[low,...,K-1]b.array[k]である.
list = [1,8,32,54,66,23,55,12,34,45]
list = sorted(list)
print(list)
n = int(input("Please input the number:"))
left_index = 0;
right_index = len(list) - 1
while left_index <= right_index:
    mid_index = (left_index + right_index)
    if n > list[mid_index]:
        left_index = mid_index +1
    elif n < list[mid_index]:
        right_index = mid_index - 1
    else:
        print("   !")
        break