用js生成二分
时间: 2024-02-10 18:10:54 浏览: 51
以下是使用 JavaScript 生成二分查找的示例代码:
```javascript
function binarySearch(arr, target) {
let left = 0;
let right = arr.length - 1;
while (left <= right) {
let mid = Math.floor((left + right) / 2);
if (arr[mid] === target) {
return mid;
} else if (arr[mid] < target) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return -1;
}
// 测试
const arr = [1, 3, 5, 7, 9];
console.log(binarySearch(arr, 3)); // 输出 1
console.log(binarySearch(arr, 6)); // 输出 -1
```
在上面的代码中,`binarySearch` 函数接收一个已排序的数组 `arr` 和一个目标值 `target`,并返回目标值在数组中的索引,如果找不到则返回 -1。
函数使用了二分查找算法,首先初始化 `left` 和 `right` 两个指针,分别指向数组的左右边界。在每次循环中,计算中间索引 `mid`,如果 `arr[mid]` 等于目标值,则直接返回 `mid`;如果 `arr[mid]` 小于目标值,则说明目标值在右边,更新 `left` 的值为 `mid + 1`;如果 `arr[mid]` 大于目标值,则说明目标值在左边,更新 `right` 的值为 `mid - 1`。循环直到找到目标值或者 `left` 大于 `right` 为止。
阅读全文