golangpackage main
import (
"fmt"
)
// binarySearch 实现二分查找算法
func binarySearch(arr []int, target int) int {
low := 0
high := len(arr) - 1
for low <= high {
mid := (low + high) / 2
// 如果目标值等于中间值,则返回中间值的索引
if arr[mid] == target {
return mid
}
// 如果目标值小于中间值,则在左半边继续搜索
if arr[mid] > target {
high = mid - 1
} else { // 如果目标值大于中间值,则在右半边继续搜索
low = mid + 1
}
}
// 如果未找到目标值,则返回 -1
return -1
}
func main() {
arr := []int{1, 3, 5, 7, 9, 11, 13, 15}
target := 9
result := binarySearch(arr, target)
if result != -1 {
fmt.Printf("目标值 %d 在数组中的索引为 %d\n", target, result)
} else {
fmt.Printf("目标值 %d 不在数组中\n", target)
}
}
本文作者:severloh
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!