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