版权声明:所有代码均为自己总结,若有雷同请勿模仿 https://blog.csdn.net/weixin_44253023/article/details/90199716
二分查找也被称为折半查找,是在一个有序数组中查找特定元素位置的查找算法。二分查找要求查找序列采用顺序存储,且按关键字有序排列。
据 Sedgewick 所说,二分查找最先出现在上个世纪50年代,但是直到60年代中期才出现了第一个正确的实现。在2006年,Java 库中关于二分查找的程序仍然因 Bug 的出现不得不被修复。实现一个完美的二分查找是有一定的难度的,要充分考虑到它的退出条件和中间点的计算
def search(data,item):
left,right=0,len(data)-1
while left<=right:
middle=(left+right)//2
if item <data[middle]:
right=middle-1
elif item >data[middle]:
left=middle+1
else:
return middle
return -1
data为列表,item为要查找的元素