1. 程式人生 > >二分算法

二分算法

查找 元素查找 binary sorted 元素 arc turn urn guess

## 二分查找
  - 每次查找會將查找範圍縮小一半,對於有 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

二分算法