import Foundation
func recursiveBinarySearch(arr: [Int], left: Int, right: Int, toFind: Int) -> Int {
if right >= left {
let mid = left + (right - left) / 2
if arr[mid] == toFind {
return mid
}
if arr[mid] > toFind {
return recursiveBinarySearch(arr: arr, left: left, right: mid - 1, toFind: toFind)
}
return recursiveBinarySearch(arr: arr, left: mid + 1, right: right, toFind: toFind)
}
return -1
}
let arr = [2, 3, 6, 7, 8, 12, 13, 17, 19, 21, 22, 28]
let toFind = 17
let index = recursiveBinarySearch(arr: arr, left: 0, right: arr.count - 1, toFind: toFind)
if index == -1 {
print("not found")
} else {
print("Found at index: \(index)")
}
/*
run:
Found at index: 7
*/