object RecursiveBinarySearch {
def recursiveBinarySearch(arr: Array[Int], 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)
}
-1
}
def main(args: Array[String]): Unit = {
val arr = Array(2, 3, 6, 7, 12, 13, 17, 19, 21, 39)
val toFind = 13
val index = recursiveBinarySearch(arr, 0, arr.length - 1, toFind)
if (index == -1) {
println("not found")
} else {
println(s"Found at index: $index")
}
}
}
/*
run:
Found at index: 5
*/