首页 > 其他 > 详细

二分查找

时间:2019-02-10 17:55:10      阅读:151      评论:0      收藏:0      [点我收藏+]
  • 时间复杂度:O(logn)
  • 在一个区间[l,h]中查找,起初l=0,h=n-1.然后用区间的中间值m=[(l+h)/2]来测试函数f。根据前面的计算结果,查找空间缩小为[l,m]或[m+1,h]。注意,在计算m的时候向下取整,这样,第二个区间就永远不会为空,第一个也是。在[log2(n)]次迭代后,即查找区间缩小为单元素的时候,查找结束。
  • 查找次数log2(n)
  • def binary_search(list, item):
        low = 0
        high = len(list) - 1
    
        while low <= high:        #判断是否缩到一个元素
            mid = (low + high) /2
            guess = list[mid]
            if guess == item:    #查到要的元素
                return mid
            elif guess > item:
                high = mid - 1
            else:
                low = mid + 1
        return None

     

二分查找

原文:https://www.cnblogs.com/walthwang/p/10359715.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!