跳到主要内容

二分查找

function findIndex(arr, target, start, end) {
if (start > end) {
return -1
}
const mid = Math.floor((start + end) / 2)
if (arr[mid] === target) {
return mid
}
if (arr[mid] > target) {
return findIndex(arr, target, start, mid - 1)
}
return findIndex(arr, target, mid + 1, end)
}

function find(arr, target) {
return findIndex(arr, target, 0, arr.length - 1)
}

测试代码

const data = [1, 2, 3, 4, 5, 6, 7, 8, 9]
console.log(find(data, 9))