Skip to content

Commit 8f95f9b

Browse files
committed
refactor Binary Search
1 parent 184fde9 commit 8f95f9b

File tree

1 file changed

+22
-9
lines changed

1 file changed

+22
-9
lines changed

go/binary_search.go

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,34 @@
11
//lint:file-ignore U1000 Ignore all unused code
22
package main
33

4-
func search(nums []int, target int) int {
5-
l, r := 0, len(nums)-1
6-
for l <= r {
7-
mid := l + (r-l)/2
8-
9-
if target == nums[mid] {
4+
func binarySearchHalfClosed(nums []int, target int) int {
5+
left, right := 0, len(nums)
6+
for left < right {
7+
mid := left + (right-left)/2
8+
if nums[mid] == target {
109
return mid
1110
}
12-
1311
if target < nums[mid] {
14-
r = mid - 1
12+
right = mid
1513
} else {
16-
l = mid + 1
14+
left = mid + 1
1715
}
1816
}
17+
return -1
18+
}
1919

20+
func binarySearchClosed(nums []int, target int) int {
21+
left, right := 0, len(nums)-1
22+
for left <= right {
23+
mid := left + (right-left)/2
24+
if nums[mid] == target {
25+
return mid
26+
}
27+
if target < nums[mid] {
28+
right = mid - 1
29+
} else {
30+
left = mid + 1
31+
}
32+
}
2033
return -1
2134
}

0 commit comments

Comments
 (0)