How to implement recursive binary search in Go

1 Answer

0 votes
package main

import (
    "fmt"
)

func recursiveBinarySearch(arr []int, left int, right int, toFind int) int {
    if right >= left {
        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
}

func main() {
    arr := []int{2, 3, 6, 7, 12, 14, 16, 17, 19, 21, 29, 32}
    toFind := 16

    index := recursiveBinarySearch(arr, 0, len(arr)-1, toFind)

    if index == -1 {
        fmt.Println("not found")
    } else {
        fmt.Printf("Found at index: %d\n", index)
    }
}




/*
run:
   
Found at index: 6
  
*/

 



answered Dec 13, 2024 by avibootz

Related questions

1 answer 111 views
1 answer 136 views
1 answer 124 views
1 answer 118 views
1 answer 116 views
1 answer 139 views
...