二分查找的基本假设是数组是有序排列的,时间复杂度 O(log(n))。
主要思路是设定两个头尾指针,比较数组中间节点和待查找元素,如果待查找元素小于中间元素,就将尾指针指向中间元素的前一个元素,反之首指针指向中间元素的下一个元素。
def binarySearch(array,x):
#假设数组升序排列
start = 0
end = len(array) - 1
while start <= end:
mid = (start + begin) // 2
if array[mid] > x:
end = mid - 1
elif array[mid] < x:
start= mid + 1
else:
return True
return False