Binary Search in Array

前端 未结 5 515
生来不讨喜
生来不讨喜 2020-11-27 05:40

How would I implement a binary search using just an array?

5条回答
  •  自闭症患者
    2020-11-27 06:32

    Binary Search in Javascript (ES6)

    (If anyone needs)

    Bottom-up:

    function binarySearch (arr, val) {
        let start = 0;
        let end = arr.length - 1;
        let mid;
    
        while (start <= end) {
            mid = Math.floor((start + end) / 2);
    
            if (arr[mid] === val) {
                return mid;
            }
            if (val < arr[mid]) {
                end = mid - 1;
            } else {
                start = mid + 1;
            }
        }
        return -1;
    }
    

    Recursion:

    function binarySearch(arr, val, start = 0, end = arr.length - 1) {
        const mid = Math.floor((start + end) / 2);
    
        if (val === arr[mid]) {
            return mid;
        }
        if (start >= end) {
            return -1;
        }
        return val < arr[mid]
            ? binarySearch(arr, val, start, mid - 1)
            : binarySearch(arr, val, mid + 1, end);
    }
    

提交回复
热议问题