'''二分查找:
前提:数组是有序的
时间复杂度:最优O(1)  最坏O(logN)
'''
def area(alist, targe):
    n = len(alist)
    left = 0
    right = n - 1
    while left <= right:
        mid = (left + right) // 2
        if alist[mid] > targe:
            right = mid - 1
        elif alist[mid] < targe:
            left = mid + 1
        else:
            return alist.index(targe)

    return False
if __name__ == '__main__':
    list = [2,4,5,12,14,23]
    print(area(list,23))