二分算法
Posted hycstar
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二分算法相关的知识,希望对你有一定的参考价值。
## 二分查找
- 每次查找会将查找范围缩小一半,对于有 n 个元素的序列最多仅需要 log n 次查找
- 二分查找只能用于有序序列的元素查找
## 基本实现
1 def binary_search(sorted_sequence, item): 2 """ 3 sorted_sequence: 有序序列 4 item: 需要查找的元素值 5 return: 若序列中存在该元素,则返回该元素索引,若不存在,则返回None 6 """ 7 low = 0 8 high = len(sorted_sequence) - 1 9 while low <= high: 10 mid = (low + high) // 2 11 guess = sorted_sequence[mid] 12 if guess == item: 13 return mid 14 if guess > item: 15 high = mid - 1 16 else: 17 low = mid + 1 18 return None
以上是关于二分算法的主要内容,如果未能解决你的问题,请参考以下文章
有人可以解释啥是 SVN 平分算法吗?理论上和通过代码片段[重复]