二分查找算法JS
// 二分查找,
// 条件: 数组为有序数组,并且数组中无重复的元素
let arr = [0, 1, 2, 3, 4, 5, 6]
// arr 被查找的数组, target 要查找的数字
function search(arr, target) {
// 确定查找的左右区间
let left = 0
let right = arr.length - 1
while (left <= right) {
let mid = left + Math.ceil((right - left) / 2)
// mid的元素比目标元素大,则目标元素在左区间,
if (arr[mid] > target) {
right = mid - 1
} else if (arr[mid] < target) {
// 比目标元素小
left = mid + 1
} else {
return mid
}
}
return -1
}
console.log(search(arr, 13))