二分查找
对于有序数组来说,折半查找的效率很高,它的工作方式主要是通过查找键值K和数组中间元素A[m]来完成的。如果相等,查找结束。否则,K<A[m],就对数组的前半部分进行查找,否则对数组的后半部分进行查找。
我们可以进行一个计算,检验一下折半查找的效率。对于一个有100万元素的有序数组查找一个值,所需要的次数不会超过20次,足以说明这个算法的优秀性能。
python实现
def search_func(search):
low=0
high=num-1
while low<=high:
mid=(low+high)//2
if list_num[mid]==search:
print('要查找的数的第%d处'%(mid+1))
return 0
elif list_num[mid]>search:
high=mid-1
else:
low=mid+1
else:
print('未找到')
欢迎关注公众号 : 数学算法实验室
专注于算法与人工智能知识