欢迎使用CSDN-markdown编辑器
来源:互联网 发布:海外出差 知乎 编辑:程序博客网 时间:2024/06/05 10:50
Python二分查找
上次用python写二分查找,习惯性的就写递归函数,结果被坑了,重新写了一份
代码:
def bin_searth(in_list, num): if(not in_list): return -1 length = len(in_list) index = length/2 begin = 0 end = length - 1 while(True): if(in_list[index] == num): return index else: if(length == 1): return -1 if(in_list[index] > num): end = index - 1 elif(in_list[index] < num): begin = index + 1 index = (begin + end)/2 length = end - begin + 1
然后看了下别人的实现,据说这段代码出自《代码之美》(Beautiful Code)http://www.oschina.net/code/snippet_250815_10547
代码:
def BinarySearch(a, target): low = 0 high = len(a) - 1while low <= high: mid = (low + high) // 2 midVal = a[mid] if midVal < target: low = mid + 1 elif midVal > target: high = mid - 1 else: return mid return -1
果然比自己的简洁很多,学习了
0 0
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- EditText数据回显
- ViewPager+FragmentPagerAdapter实现微信5.2.1主界面架构
- 1087Super Jumping! Jumping! Jumping!
- 常见排序算法总结(java版)
- spark:学习杂记--39
- 欢迎使用CSDN-markdown编辑器
- ssao
- Equations(哈希)
- 一起talk Vim吧(第五回:Vim无影刀法)
- leetCode #203 remove linked list elements
- 【数据结构】回顾栈ADT和队ADT
- 黑马程序员_Java语言_反射及jdk新特性
- WebService到底是什么?
- Liner Regression(Gradient descent algorithm)