Skip to main content

二分查找

思路:

/**
* @description 二分查找递归实现,若传入的数组无序,则采用上面的排序方法,进行排序
* @param {*} searchValue 查找的值
* @param {Array} arr 需传入有序数组,
* @param {Number} start 开始查找的位置
* @param {Number} end 结束查找位置
*/
function binarySearch(searchValue, arr) {
let start = 0;
let end = arr.length - 1;

while (start <= end) {
let mid = Math.floor((start + end) / 2);
if (searchValue === arr[mid]) {
return mid;
} else if (searchValue < arr[mid]) {
end = mid -1;
} else {
start = mid + 1;
}
}
return -1;
}

let binaryArray = [ 0, 1, 1, 2, 2, 4, 21, 34, 56 ];
console.log(binarySearch(21,binaryArray))