Binary Search
Idea
Binary Search halves the search range each step—requires a sorted list.
折半查找法(Binary Search)演示
1357911
When to use
- Sorted linear list (array or list)
- Large data, frequent queries
Algorithm
- Range
- If , success
- If , search right half
- If , search left half
- Stop when
Pseudo-code:
low = 0, high = n-1
while low <= high:
mid = (low + high) // 2
if A[mid] == x:
return mid
elif A[mid] < x:
low = mid + 1
else:
high = mid - 1
return -1
Complexity
- Best:
- Worst/avg:
Exercises
Exercise 1
For sorted , find .
参考答案
思路:每次折半。
步骤:
答案:下标 。
Exercise 2
适用条件与时间复杂度?
参考答案
思路:前提与效率。
步骤:
- 适用于有序表
- 时间复杂度
答案:有序表,。
Past exam
2017·408
折半查找过程与效率?
参考答案
思路:描述流程与比较次数。
步骤:
- 每次比中间,区间减半
- 最多比较 次
答案:折半,。