ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

二分法查找

2021-07-10 21:33:58  阅读:104  来源: 互联网

标签:return val mid li 二分法 查找 time


#二分查找建立在有序的前提下
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

 

标签:return,val,mid,li,二分法,查找,time
来源: https://www.cnblogs.com/dzwclimber/p/14994922.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有