数据结构之二分查找

二分查找,应用的场景是在一个排序的序列中,查找指定的数的位置。复杂度为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)
原文地址:https://www.cnblogs.com/xiamaogeng/p/4461134.html