1. アルゴリズム: (検索する配列期間を array[low, high] とします)
(1) 周期の中間位置 K を求める 2.python コード: def BinarySearch(array,t): elif 配列[mid] > t: else: -1 を返す
if __name__ == "__main__":
(2) 求めた値 T と array[k] を比較します。それらが等しい場合、検索は成功し、この位置に戻ります。そうでない場合は、新しい検索領域を決定して二分探索を続行します。領域は次のように決定されます:
a.array[k]>T 配列の順序から、array[k,k+1,…,high]>T; したがって、新しい間隔は array[low] になります。 ,… …, K-1]
b.array[k]
#!/usr/bin/python
# -*-コーディング: utf -8 -*-
low = 0
height = len(array)-1
while low
middle = (low+height)/2
If array[mid]
Low = Mid + 1
高さ = ミッド - 1
return array[mid]
print BinarySearch([1,2,3,34,56,57,78,87],57)