算法---二分查找法

# 写一个二分法排序
def erfen(lis,num):
    min = 0
    max = len(lis)-1
    count = 0
    while True:
        middle = (max - min) // 2 + min
        if num == lis[middle]:
            print('{0}在第{1}位,循环次数是{2}'.format(num,middle,count))
            break
        elif num < lis[middle]:
            max = middle -1
        elif num > lis[middle]:
            min = middle+1
        if count > max :
            print('不存在')
            break
        count+=1

if __name__ == '__main__':
    lis = [2,54,6,89,30,28]
    a = lis.sort()
    print(lis)
    erfen(lis,2)

 

posted @ 2019-10-24 15:13  红枣枸杞  阅读(127)  评论(0编辑  收藏  举报