javascript 二分法实例
时间: 2023-08-13 09:08:26 浏览: 95
下面是一个简单的 JavaScript 二分法实例:
```javascript
function binarySearch(arr, key) {
var left = 0;
var right = arr.length - 1;
while (left <= right) {
var mid = Math.floor((left + right) / 2);
if (arr[mid] === key) {
return mid;
} else if (arr[mid] > key) {
right = mid - 1;
} else {
left = mid + 1;
}
}
return -1;
}
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
var key = 6;
var index = binarySearch(arr, key);
if (index === -1) {
console.log("Not found");
} else {
console.log("Found at index " + index);
}
```
上述代码中,`binarySearch` 函数接收一个有序数组 `arr` 和一个待查找的关键字 `key`,并返回关键字在数组中的下标。如果未找到,则返回 -1。
函数中使用 `while` 循环进行二分查找,每次循环更新左右边界,并计算中间位置的下标。如果中间位置的值等于关键字,则返回中间位置的下标;如果中间位置的值大于关键字,则更新右边界为中间位置的前一个下标;如果中间位置的值小于关键字,则更新左边界为中间位置的后一个下标。直到左边界大于右边界为止。
最后,根据查找结果输出相应的提示信息。
阅读全文