二分查找基本实现js 原理
时间: 2024-10-23 10:12:42 浏览: 29
二分查找的基本实现原理是基于JavaScript的有序数组。其工作流程如下[^1]:
1. **初始化**:确定数组的起始索引(low)和结束索引(high),通常初始时low为0,high为数组长度减一。
2. **比较**:计算中间索引(mid)= (low + high) / 2,然后比较中间元素的值与目标值。
3. **判断**:如果中间元素等于目标值,查找完成;如果目标值小于中间元素,则在数组左半部分继续查找(更新high为mid - 1);反之,在右半部分查找(更新low为mid + 1)。
4. **递归**:重复以上步骤直到找到目标值或low大于high。
以下是一个简单的JavaScript二分查找实现示例[^2]:
```javascript
function binarySearch(arr, target) {
let low = 0;
let high = arr.length - 1;
while (low <= high) {
let mid = Math.floor((low + high) / 2);
if (arr[mid] === target) {
return mid; // 找到目标值
} else if (arr[mid] < target) {
low = mid + 1; // 目标值大于当前元素,向右半部分查找
} else {
high = mid - 1; // 目标值小于当前元素,向左半部分查找
}
}
return -1; // 没找到目标值,返回-1表示不存在
}
// 示例
let sortedArray = [1, 3, 5, 7, 9];
console.log(binarySearch(sortedArray, 7)); // 输出:3
```
阅读全文