二分查找
package main
import (
"fmt"
)
func BinaryFind(arr *[6]int,leftindex int,rightindex int,finval int) {
// 数组中间下标,重点middle 通过middle 来查找数字,和退出
middle := (leftindex + rightindex) / 2
if leftindex > rightindex{
fmt.Println("没有找到")
return
}
if (*arr)[middle] > finval {
// 说明我们要查找的数字,应该在leftindex ----- middle - 1
BinaryFind(arr,leftindex,middle-1,finval)
} else if (*arr)[middle] < finval{
// 说明我们要查找的数字,应该在middle +1 ----- rightindex
BinaryFind(arr,middle+1,rightindex,finval)
} else{
fmt.Println("恭喜你找到了")
return
}
}
func main() {
arr := [6]int{
1,8,10,89,1000,1234,
}
BinaryFind(&arr,0, len(arr)-1,8)
}