算法(计算的方法)

二分查找算法

必须处理有序列表。

例如查找下面列表的中23的索引。

[1,2,3,4,5,6,7,8,9,23,34,45,56,87,94]

代码实现:

l = [1,2,3,4,5,6,7,8,9,23,34,45,56,87,94]
def find(l,aim,start= 0,end = len(l)):
    mid_index = (end - start) // 2 +start
    if l[mid_index] < aim:
        find(l, aim, start=mid_index + 1, end=end)
    elif l[mid_index] > aim:
        find(l, aim, start=0, end=mid_index - 1)
    else:
        print(mid_index,aim)

find(l,23)
View Code

posted @ 2019-08-28 23:09  套你大象  阅读(379)  评论(0编辑  收藏  举报