How to implement recursive binary search in Swift

1 Answer

0 votes
import Foundation

func recursiveBinarySearch(arr: [Int], left: Int, right: Int, toFind: Int) -> Int {
    if right >= left {
        let mid = left + (right - left) / 2

        if arr[mid] == toFind {
            return mid
        }

        if arr[mid] > toFind {
            return recursiveBinarySearch(arr: arr, left: left, right: mid - 1, toFind: toFind)
        }

        return recursiveBinarySearch(arr: arr, left: mid + 1, right: right, toFind: toFind)
    }

    return -1
}

let arr = [2, 3, 6, 7, 8, 12, 13, 17, 19, 21, 22, 28]
let toFind = 17

let index = recursiveBinarySearch(arr: arr, left: 0, right: arr.count - 1, toFind: toFind)

if index == -1 {
    print("not found")
} else {
    print("Found at index: \(index)")
}




/*
run:  
 
Found at index: 7
 
*/

 



answered Dec 13, 2024 by avibootz

Related questions

1 answer 137 views
1 answer 125 views
1 answer 120 views
1 answer 119 views
1 answer 116 views
1 answer 139 views
...