python-算法-二分查找法

list1=[1,2,3,5,4,8,9,8,7,8,9,8,7,5,6,2,1,2,3,5,6,8,7,81,234,5678,153,4,987,568,51,687,61,3213,25,46,15]

list1.sort();

# print(list1)

def midFind(li,n):

    ti=0;

    def func(li,n,end,start=0):

    if not end:end=len(li);

    nonlocal ti;

    print(ti);

    ti+=1

    if end-start==1:return "列表里没有这个值,{0}在索引{1}和{2}之间".format(n,start,end)

    findv=start+(end-start)//2

    if li[findv]>n:

        return func(li,n,start=start,end=findv);

    elif li[findv]

        return func(li,n,start=findv+1,end=end)

    else:return findv

    print(func(li,n,start=0,end=len(li)));


midFind(list1,235)

你可能感兴趣的:(python-算法-二分查找法)