二分算法
阿新 • • 發佈:2018-07-06
查找 元素查找 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 9while 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
二分算法