折半查找是二分查找吗
时间: 2025-01-08 18:07:22 浏览: 5
### 折半查找与二分查找的关系
折半查找实际上就是指二分查找算法。这种算法的核心在于通过反复将搜索区间减半来高效定位目标值[^1]。
#### 名称差异的原因
不同资料可能出于习惯或表述风格的不同而采用不同的术语,但在本质上二者指的是相同的算法概念。具体来说:
- **定义一致性**:无论是称为“折半查找”还是“二分查找”,都是描述一种基于有序列表的高效查找技术,在每次迭代过程中选取待查序列中间位置作为参照点,并据此调整新的子区间的边界直至命中目标项或是确认其不在集合内[^2]。
- **操作流程相同**:按照给定的关键字顺序访问数据集,先取中位数作对比,再决定下一步是在左侧还是右侧继续执行同样的逻辑过程,直到满足终止条件为止[^3]。
因此可以得出结论,折半查找完全等同于二分查找算法,只是名称上的区别而已。
```python
def binary_search(arr, target):
left, right = 0, len(arr) - 1
while left <= right:
mid = (left + right) // 2
if arr[mid] == target:
return mid
elif arr[mid] < target:
left = mid + 1
else:
right = mid - 1
return -1
```
阅读全文