1. 程式人生 > >二分法,遞迴

二分法,遞迴

def search(n, l):
    print(l)
    if len(l) == 0:
        print("bucunzai")
        return
    mid_index = len(l) // 2

    if n > l[mid_index]:
        l = l[mid_index + 1:]
        return search(n, l)            #這個return是返回函式的  發起者
    elif n < l[mid_index]:
        l = l[:mid_index]
        
return search(n, l) #這個return 是返回個函式的 發起者 else: return l[mid_index] #這個return 是給上面的某一個的 最後的結果個發起者 l = [1, 2, 10, 30, 33, 99, 101, 200, 301, 311, 402, 403, 500, 900, 1000] ret = search(33, l) print(ret,l.index(ret))


[1, 2, 10, 30, 33, 99, 101, 200, 301, 311, 402, 403, 500, 900, 1000]
[1, 2, 10, 30, 33, 99, 101]
[33, 99, 101]
[33]
33 4