算法原理:
- 二分查找的前提是有序序列
- 将序列中位置纪录与关键字比较,若相等,则查找成功
- 否则用中间位置纪录将表分成前后两个子表
- 如果关键字大于查找关键字,则进一步找前一子表
- 否则进一步查找后一子表
- 重复以上过程,知道找到满足条件的纪录,使得朝朝成功,或知道子表不存在,此时查找不成功‘
代码:
def bin_search(dat_sret, val):
low = 0
high = len(dat_sret) - 1
while low <= high:
mid = (low + high) // 2 # 整除
if dat_sret[mid] == val:
return mid
elif dat_sret[mid] < val:
low = mid + 1
else:
high = mid - 1
else:
return
代码解释:
代码中 (low + high) // 2
表示 python 的地板除法 也就是整除。
来源:CSDN
作者:sha_ka
链接:https://blog.csdn.net/sha_ka/article/details/103578567