你的位置:首页 > 信息动态 > 新闻中心
信息动态
联系我们

[编程题] 二分查找

2022/9/12 22:15:45

递归

function binarySearch(arr: number[], target: number, left: number = 0, right: number = arr.length - 1): number {
    if (left > right) {
        return -1
    }
    const mid = Math.floor((left + right) / 2)
    if (arr[mid] === target) {
        return mid
    }
    if (arr[mid] < target) {
        return binarySearch(arr, target, mid + 1, right)
    }
    return binarySearch(arr, target, left, mid - 1)
}

const arr = [-1, 0, 1, 2, 3, 4, 5, 6, 11, 44, 56, 77]

console.log(binarySearch(arr, 44)) // 9
console.log(binarySearch(arr, 99)) // -1