Skip to content

Latest commit

 

History

History
38 lines (31 loc) · 720 Bytes

binarySearch.md

File metadata and controls

38 lines (31 loc) · 720 Bytes
import Foundation

func binarySearchIndexGreaterOrEqual(to number: Int, in array: [Int]) -> Int {
    var low = 0
    var mid = 0
    var high = array.count - 1
    
    while low <= high {
        mid = (low + high) / 2
        if array[mid] < number {
            low = mid + 1
        } else {
            high = mid - 1
        }
    }
    
    return low
}

func binarySearchIndexLowerOrEqual(to number: Int, in array: [Int]) -> Int {
    var low = 0
    var mid = 0
    var high = array.count - 1
    
    while low <= high {
        mid = (low + high) / 2
        if array[mid] <= number {
            low = mid + 1
        } else {
            high = mid - 1
        }
    }
    
    return high
}