二分法,遞迴
阿新 • • 發佈:2018-11-03
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