Python 二分查找算法

一、解释

二分法:可以理解为折半查找法,每一次都是基于上一次的折半查找

二、实例 

l = [1,2,5,7,10,31,44,47,56,99,102,130,240]
#l为查找的列表
#num要查找的数
def binary_search(l,num):
    print(l) #[10, 31]
    if len(l) > 1:
        mid_index=len(l)//2 #1
        if num > l[mid_index]:
            #in the right
            l=l[mid_index:] #l=[31]
            binary_search(l,num)
        elif num < l[mid_index]:
            #in the left
            l=l[:mid_index]
            binary_search(l,num)
        else:
            print('find it')
    else:
        if l[0] == num:
            print('find it')
        else:
            print('not exist')
        return

binary_search(l,32)
 
posted @ 2017-07-31 13:13  刘小伟  阅读(399)  评论(0编辑  收藏  举报