How to implement recursive binary search in Kotlin

1 Answer

0 votes
fun recursiveBinarySearch(arr: IntArray, left: Int, right: Int, toFind: Int): Int {
    if (right >= left) {
        val mid = left + (right - left) / 2

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

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

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

    return -1
}

fun main() {
    val arr = intArrayOf(2, 3, 6, 7, 12, 13, 17, 19, 21, 30, 32, 45)
    val toFind = 17

    val index = recursiveBinarySearch(arr, 0, arr.size - 1, toFind)

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

 
 
/*
run:

Found at index: 6
 
*/

 



answered Dec 13, 2024 by avibootz
...