今日问题:如何实现二分查找?
Q:如果在前端面试中,被问到如何实现二分查找,如果回答比较好,给出必要的代码示例
A:当被问到如何实现二分查找时,你可以首先解释二分查找的基本原理和步骤,然后给出相应的代码示例。下面是一个简单的 JavaScript 示例:
jsfunction 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;
}
}
// 如果数组中不存在目标值,则返回 -1
return -1;
}
// 示例用法
const array = [1, 3, 5, 7, 9, 11, 13, 15];
const target = 7;
const resultIndex = binarySearch(array, target);
console.log(`目标值 ${target} 在数组中的索引是:${resultIndex}`);
在这个示例中,binarySearch
函数接受一个已排序的数组 arr
和一个目标值 target
作为参数。它使用一个 while
循环来不断缩小搜索范围,直到找到目标值或者确定它不存在为止。
本文作者:CreatorRay
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!