您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# 什么是二分查找
## 概述
二分查找(Binary Search)是一种在**有序数组**中高效查找特定元素的算法。其核心思想是通过不断将搜索范围减半来快速定位目标值,时间复杂度为O(log n),远优于线性查找的O(n)。
## 算法原理
1. **前提条件**
数组必须是有序的(升序或降序),这是二分查找能够工作的基础。
2. **操作步骤**
- 初始化两个指针:`low`(指向起始位置)和`high`(指向末尾位置)
- 计算中间位置 `mid = (low + high) // 2`
- 比较中间元素与目标值:
- 若 `arr[mid] == target`:返回位置
- 若 `arr[mid] < target`:在右半部分继续搜索(`low = mid + 1`)
- 若 `arr[mid] > target`:在左半部分继续搜索(`high = mid - 1`)
- 重复直到 `low > high`(未找到)
## 代码示例(Python)
```python
def binary_search(arr, target):
low, high = 0, len(arr) - 1
while low <= high:
mid = (low + high) // 2
if arr[mid] == target:
return mid
elif arr[mid] < target:
low = mid + 1
else:
high = mid - 1
return -1 # 未找到
优点 | 缺点 |
---|---|
查找效率极高 | 要求数据有序 |
适合静态数据 | 插入/删除成本高 |
实现简单 | 不适用于链表结构 |
二分查找通过”分而治之”的策略将线性时间优化为对数时间,是算法学习中必须掌握的经典范例。其高效性使其成为处理有序数据集时的首选方案。 “`
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。