Python 3 二分查找算法實現
阿新 • • 發佈:2018-01-06
print 復雜 list 時間 val war 查找算法 nbsp form
import time def cal_time(func): def wrapper(*args,**kwargs): t1=time.time() x=func(*args,**kwargs) t2=time.time() t=t2-t1 print("It costs:",t2-t1) return x return wrapper #pprint("It Costs {0}:".format(t) @cal_time def bin_seach(data_set,value): low =0 high = len(data_set) -1 while low<=high: mid=(low+high)//2 if data_set[mid]==value: return mid elif data_set[mid]>value: high=mid-1 else: low=mid+1 return data=list(range(109)) bin_seach(data,3)
時間復雜度:用來評估算法運行效率的一個東西,即 (單位)!
一般來說,時間復雜度高的算法比復雜度低的算法慢。
O(1)<O(logn)<O(n)
效率最好為O(1),其他遞減次之。
簡而言之,幾層循壞,就是O(log2 n),
while n>1: print (n) n=n//2
若n=64 ,則復雜度為:O(log2 64)=6
Python 3 二分查找算法實現