最近由于公司要使用go语言开发项目,就开始在学习go语言。通过go语言实现了二分查找,下面直接贴代码
package main
import (
"fmt"
"math/rand"
"time"
)
func main() {
start := 1
end := 100
num := 0
flag := true
seed := getRandSeed()
intn := seed.Intn(100) + 1
for flag {
num++
mid := (end + start) / 2
if intn == mid {
flag = false
fmt.Printf("共计猜了%v次\r\n", num)
break
}
if intn > mid {
start = mid + 1
fmt.Printf("猜大了,继续猜...\r\n")
} else {
end = mid - 1
fmt.Printf("猜小了,继续猜...\r\n")
}
}
}
// 获取随机数种子
func getRandSeed() *rand.Rand {
nano := time.Now().UnixNano()
seed := rand.New(rand.NewSource(nano))
return seed
}
结果: