二分查找,应用的场景是在一个排序的序列中,查找指定的数的位置。复杂度为O(logn).
常用的包括递归的方法,如下:
def binarySearch(data, x, start, end): if start>end: return -1 mid = start + (end-start)/2 #这里需要注意,不要mid = (start+end)/2,可能会溢出 if data[mid]==x: return mid elif data[mid]>x: return binarySearch(data, x, start, mid-1) else: return binarySearch(data, x, mid+1, end)