码迷,mamicode.com
首页 > 编程语言 > 详细

Python 3 二分查找算法实现

时间:2018-01-06 21:04:07      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:bin   def   else   wrap   arp   算法实现   sha   时间   turn   

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 二分查找算法实现

标签:bin   def   else   wrap   arp   算法实现   sha   时间   turn   

原文地址:https://www.cnblogs.com/joewancn/p/8215060.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!