_二分查找_python

Posted cnleika

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了_二分查找_python相关的知识,希望对你有一定的参考价值。

什么是二分查找?

我们先玩一个游戏.
在1至100之间我写下一个数,由你来猜测这个数是多少.我会告诉你高了还是低了.

最简单的办法就是每次取一半.
例如

"50""低了"
"75""高了"
"67""高了"
"63""低了"
"65""正确"

这种方法就是二分查找.

    def search(self,list,item):
        #list为顺序列表,item为目标值
        list_low=0  #列表起点
        list_high=len(list)-1   #列表终点
        while list_low<=list_high:  #只要起点不大于终点便一直循环
            mid=int((list_low+list_high)/2) #(起点+终点)/2=中间值
            guess=list[mid] #获取中间值
            if guess==item: #结果对了
                return mid
            if guess>item:  #结果大了
                list_high=mid-1
            else:
                list_low=mid+1  #结果小了
        return None #都没有就返回None

以上是关于_二分查找_python的主要内容,如果未能解决你的问题,请参考以下文章

Python 查找算法_众里寻他千百度,蓦然回首那人却在灯火阑珊处(线性二分,分块插值查找算法)

算法_001_二分查找算法

算法_二分查找

二分查找_14

XDOJ_1139_二分查找

Python实现经典查找算法