二分查找

97 阅读1分钟

1.二分查找

二分查找(Binary Search)算法,也叫折半查找算法。二分查找针对的是一个有序的数据集合查找。每次都通过跟区间的中间元素对比,将待查找的区间缩小为之前的一半,直到找到要查找的元素,或者区间被缩小为 0。

        let arr = [1, 2, 3, 6, 54, 654]
        function search(arr, target) {
            let count = 0;
            let start = 0;
            let end = arr.length - 1;
            while (start <= end) {
                count++
                let middle = Math.floor((start + end) / 2)
                let guess = arr[middle]
                if (guess == target) {
                    return middle
                }
                if (guess > target) {
                    end = middle
                }
                if (guess < target) {
                    start = middle
                }
            }
        }
        console.log(search(arr,6))