查找算法之二分查找

不想你离开。 提交于 2019-12-18 02:18:07

算法原理:

  1. 二分查找的前提是有序序列
  2. 将序列中位置纪录与关键字比较,若相等,则查找成功
  3. 否则用中间位置纪录将表分成前后两个子表
  4. 如果关键字大于查找关键字,则进一步找前一子表
  5. 否则进一步查找后一子表
  6. 重复以上过程,知道找到满足条件的纪录,使得朝朝成功,或知道子表不存在,此时查找不成功‘

代码:

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 的地板除法 也就是整除。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!