27 lines
462 B
Go
27 lines
462 B
Go
|
package main
|
||
|
|
||
|
import (
|
||
|
"errors"
|
||
|
"fmt"
|
||
|
)
|
||
|
|
||
|
func binarySearch(nums []int, target int) (int, error) {
|
||
|
low := 0
|
||
|
high := len(nums) - 1
|
||
|
for low <= high {
|
||
|
mid := low + (high-low)/2
|
||
|
if nums[mid] > target {
|
||
|
high = mid - 1
|
||
|
} else if nums[mid] < target {
|
||
|
low = mid + 1
|
||
|
} else if nums[mid] == target {
|
||
|
return mid, nil
|
||
|
}
|
||
|
}
|
||
|
return -1, errors.New("binarySearch: your target is not found in the given array")
|
||
|
}
|
||
|
|
||
|
func main() {
|
||
|
fmt.Println("Go Fast!")
|
||
|
}
|