二分查找法的基本实现
在二分查找法的基本实现中,取 mid 值的时候,向上取整和向下取整都是可以的,没有问题。
二分查找法的递归实现:/**
* let left = 0;
* left right = arr.length - 1;
*/
function binarySearch(arr, left, right, target) {
if (left > right) return -1;
let mid = Math.floor((left + right) / 2);
if (arr[mid] < target) {
return binarySearch(arr, mid + 1, right, target);
} else if (arr[mid] === target) {
return mid;
} else {
return binarySearch(arr, left, mid - 1, target);
}
}
二分查找法的非递归实现:function binarySearch(arr, target) {
let left = 0;
let right = arr.length - 1;
let mid;
while (left <= right) {
mid = Math.floor((left + right) / 2);
if (arr[mid] < target) {