写了一个线性二分查找的算法,想打印出执行的时间,时间明明在7秒以上,可却打印出2.xxms 或者 7.xxms
,总之,打印出来的数字都不到一秒。奇怪,代码如下,望大神指点:
```golang
func makeRange(min, max int) []int {
a := make([]int, max-min+1)
for i := range a {
a[i] = min + i
}
return a
}
func main() {
array := makeRange(0, 1000000000)
LinearySearcheT(array)
}
func LinearySearcheT(array []int) {
defer timeCost("线性查找 ", time.Now())
bool := LinearSearch(array, 1000000)
fmt.Print("b1:", bool)
}
func timeCost(desc string, start time.Time) {
terminal := time.Since(start)
fmt.Printf("%v耗时:%v\n", desc, terminal)
}
func LinearSearch(array []int, t int) bool {
i := 0
for i < len(array) {
if array[i] == t {
return true
}
i++
}
return false
}
```
2楼 <a href="/user/BlackBerryX" title="@BlackBerryX">@BlackBerryX</a> 帖子和回复区都是支持Mardown格式的文本的,把代码放到一对3个重音符号```之间, 头部标识语言类型,就会有代码高亮效果了。如下:
![glang.png](https://static.studygolang.com/190227/389106c41c54c96a648f27e220eb8025.png)
显示效果:
```golang
func main(){
fmt.Println("hello")
}
```
#4
更多评论
没有问题的,你的代码大部分时间花在array := makeRange(0, 1000000000)这个上面,你按下面试试
```go
func main() {
t := time.Now()
array := makeRange(0, 1000000000)
LinearySearcheT(array, t)
}
// LinearySearcheT --
func LinearySearcheT(array []int, t time.Time) {
defer timeCost("线性查找 ", t)
bool := LinearSearch(array, 1000000)
fmt.Print("b1:", bool)
}
```
#1