source
package main
import "fmt"
func main() {
var test = []int{2, 3, 4, 6, 7}
fmt.Println(binarySearch(test, 5))
fmt.Println(binarySearch(test, 3))
}
func binarySearch(array []int, target int) bool {
count := len(array)
if count == 1 && array[0] == target {
return true
}
if count == 1 && array[0] != target {
return false
} //#1
var medium = array[count/2] //#2
//fmt.Println(array,medium)
if medium < target { //#3
return binarySearch(array[count/2:], target)
} else if medium > target {
return binarySearch(array[:count/2], target)
} else if medium == target {
return true
}
return false
}
output
false
true