1. 程式人生 > >python中二分法的程式碼實現

python中二分法的程式碼實現

# 從0到10**7中,找到600
# 必須是有序的列表
import time
l=range(10**7)
key=600
count=0
def search(l,key,beg,end):
    global count
    count += 1
    if beg>end:
        return
    mid=int((beg+end)/2)
    # if beg==end:
    #     return mid
    if key>l[mid]:
       return search(l,key,mid+1,end)
    elif key<l[mid]:
       return search(l,key,beg,mid-1)
    else:
        return mid
print(search(l,key,0,len(l)-1))
print(count)