You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

37 lines
597 B

package binarysearch
import "sort"
func search(nums []int, target int) int {
start := 0
end := len(nums) - 1
for start <= end {
mid := (start + end) / 2
if nums[mid] == target {
return mid
} else if nums[mid] > target {
end = mid - 1
} else if nums[mid] < target {
start = mid + 1
}
}
return -1
}
func Search(nums []int, target int) int {
return search(nums, target)
}
// Uses sort.SearchInts
func SearchStdLib(nums []int, target int) int {
idx, found := sort.Find(len(nums), func(i int) int {
return target - nums[i]
})
if found {
return idx
}
return -1
}