二分查找的一种实现
package mainimport "fmt"func BinaryFind(arr *[6]int, leftIndex int, rightIndex int, findVal int){if leftIndex > rightIndex{fmt.Println("沒有找到", findVal)}middleIndex := (leftIndex + rightIndex) / 2if (*arr)[middleIndex] > findVal {BinaryFind(arr, leftIndex, middleIndex - 1, findVal)}else if (*arr)[middleIndex] < findVal{BinaryFind(arr, middleIndex + 1, rightIndex, findVal)}else{fmt.Printf("找到%v了,下標(biāo)為:%v\n", findVal, middleIndex)}
}func main(){//有序數(shù)組arr := [6]int{1, 3, 5, 7, 9, 11}BinaryFind(&arr, 0, len(arr) - 1, 11)
}
總結(jié)
- 上一篇: 命令行工具cobra的使用
- 下一篇: 冒泡排序(数组)的一种实现