File tree 5 files changed +62
-0
lines changed
5 files changed +62
-0
lines changed Original file line number Diff line number Diff line change
1
+ .idea /
Original file line number Diff line number Diff line change
1
+ package main
2
+
3
+ import "algorithm/search"
4
+
5
+ func main () {
6
+ search .Use ()
7
+ }
Original file line number Diff line number Diff line change
1
+ package search
2
+
3
+ import (
4
+ "bufio"
5
+ "fmt"
6
+ "learn_go/algorithm"
7
+ "os"
8
+ "sort"
9
+ "strconv"
10
+ )
11
+
12
+ func BinarySearch (key int , a []int ) int {
13
+ lo := 0
14
+ hi := len (a ) - 1
15
+ for {
16
+ if lo > hi {
17
+ break
18
+ }
19
+ mid := lo + (hi - lo ) / 2
20
+ if key < a [mid ] {
21
+ hi = mid - 1
22
+ } else if key > a [mid ] {
23
+ lo = mid + 1
24
+ }else {
25
+ return mid
26
+ }
27
+ }
28
+ return - 1
29
+ }
30
+
31
+ func Use () {
32
+ scanner := bufio .NewScanner (os .Stdin )
33
+ var whiteList []int
34
+ for scanner .Scan (){
35
+ if s , err := strconv .Atoi (scanner .Text ()); err == nil {
36
+ whiteList = append (whiteList , s )
37
+ }
38
+ }
39
+ sort .Ints (whiteList )
40
+ fmt .Println (algorithm .BinarySearch (30 , whiteList ))
41
+
42
+ }
43
+
Original file line number Diff line number Diff line change
1
+ 12
2
+ 13
3
+ 14
4
+ 15
5
+ 17
6
+ 20
7
+ 22
8
+ 11
9
+ 28
10
+ 26
11
+ 22
You can’t perform that action at this time.
0 commit comments