How to implement recursive binary search in Scala

1 Answer

0 votes
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
 
*/

 



answered Dec 13, 2024 by avibootz

Related questions

1 answer 99 views
1 answer 100 views
1 answer 127 views
1 answer 112 views
1 answer 104 views
1 answer 106 views
1 answer 125 views
...