Binary search
Given an array of integers nums
which is sorted in ascending order, and an
integer target
, write a function to search target
in nums
. If target
exists, then return its index. Otherwise, return -1
.
You must write an algorithm with O(log n)
runtime complexity.
Method
Iterate over array and change the start/end to be the mid point
Solution
go
func search(nums []int, target int) int {
start, end := 0, len(nums) - 1
var mid int
for start <= end {
mid = (end + start) / 2
if nums[mid] < target {
start = mid + 1
} else if nums[mid] > target {
end = mid - 1
} else {
return mid
}
}
return -1
}