算法图解第一章_二分查找_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

猜你喜欢

转载自www.cnblogs.com/cnleika/p/11625548.html