python--二分查找
2017-10-23 10:07
316 查看
***搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则代表找不到。这种搜索算法每一次比较都使搜索范围缩小一半*** # @param array: The integer array # @param key: Target number to find # @return the first position of target in nums, position start from 0 def binarySearch(array, key): array_len = len(array) if array_len == 0 or array_len == 1: return 0 if key in array else -1 low = 0 heigh = array_len - 1 while low < heigh: mid = (heigh + low) // 2 if array[mid] < key: low = mid + 1 elif array[mid] > key: heigh = mid - 1 else: res = mid break else: res = low if array[low] == key else -1 while(res>=0): tem = res-1 if array[res]==array[tem]: res = tem else: break return res
相关文章推荐
- Python递归 — — 二分查找、斐波那契数列、三级菜单
- Python实现二分查找与bisect模块详解
- Python 实现查找的几种类型 (线性查找,线性有序查找,线性查找最小值,二分查找)
- 二分查找 python实现
- Python查找-二分查找
- 查找算法:二分查找(python)
- Python实现二分查找
- python 二分查找和快速排序实例详解
- 算法基础之python实现贪心算法中圣诞老人分糖果问题和二分查找算法中烘干衣服问题
- python实现的二分查找
- 用Python实现二分查找
- Python二分查找详解
- 用python 实现的二分查找:
- python之各种二分查找
- 二分查找算法之python实现
- Python 二分查找
- 二分查找算法python实现
- python实现二分查找
- LintCode python 小白-简单题-457经典二分查找问题
- 用Python实现二分查找