现在学习Python也有一段时间了,今天去面试考到了python二分法的运用,写的不是很好,回来研究了下,重新上代码。
>>> def BinarySearch(array,t): #array必须是按从小到大排好序的序列
low = 0
height =len(array) - 1
while height>= low: #注意python3中此处的等号不能省掉,不然可能造成返回值是错误的
mid =(low + height) // 2 #python3中要用//号整除,不然会报错
if array[mid] > t:
height =mid - 1
elif array[mid] < t:
low =mid + 1
else:
break
print("你要查找的数字%d 出现在序列第%d位" %(t,mid + 1))
return array[mid]
>>> BinarySearch([1,2,3,