关于算法:二分查找

function binarySearch(arr, value) {
    let minIndex = 0
    let maxIndex = arr.length - 1
    let middleValue

    while (minIndex <= maxIndex) {
        let middleIndex = Math.floor((minIndex + maxIndex) / 2)
        middleValue = arr[middleIndex]
        if (value < middleValue) {
            maxIndex = middleIndex - 1
        } else if (value > middleValue) {
            minIndex = middleIndex + 1
        } else {
            return middleIndex
        }
    }

    return -1
}

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理