首页 > 其他 > 详细

二分法查找

时间:2021-07-10 22:12:21      阅读:44      评论:0      收藏:0      [点我收藏+]
#二分查找建立在有序的前提下
1
import time 2 3 def cal_time(func): 4 def wrapper(*args, **kwargs): 5 t1 = time.time() 6 result = func(*args, **kwargs) 7 t2 = time.time() 8 print("%s running time: %s secs." % (func.__name__, t2 - t1)) 9 return result 10 11 return wrapper

 1 @cal_time
 2 def binary_search(li, val):
 3     left = 0
 4     right = len(li) - 1
 5     while left <= right:    # 候选区有值
 6         mid = (left + right) // 2
 7         if li[mid] == val:
 8             return mid
 9         elif li[mid] > val: # 带查找的值在mid左侧
10             right = mid - 1
11         else: # li[mid] < val 带查找的值在mid右侧
12             left = mid + 1
13     else:
14         return None

 

二分法查找

原文:https://www.cnblogs.com/dzwclimber/p/14994922.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!