用go写一个二分查找
时间: 2023-07-18 07:08:19 浏览: 89
二分查找
以下是使用 Go 语言实现的二分查找算法代码:
```go
package main
import "fmt"
func binarySearch(arr []int, x int) int {
low, high := 0, len(arr)-1
for low <= high {
mid := (low + high) / 2
if arr[mid] == x {
return mid
} else if arr[mid] < x {
low = mid + 1
} else {
high = mid - 1
}
}
return -1
}
func main() {
arr := []int{1, 3, 5, 7, 9}
x := 7
result := binarySearch(arr, x)
if result == -1 {
fmt.Println("Element not found")
} else {
fmt.Printf("Element found at index %d\n", result)
}
}
```
在这个例子中,我们定义了一个 `binarySearch` 函数来执行二分查找算法。该函数接收一个整数数组 `arr` 和一个要查找的目标值 `x` 作为参数。它使用两个指针 `low` 和 `high` 来跟踪数组的边界,并一直将它们移到它们的中间位置,直到找到匹配的元素或确定找不到元素为止。
在 `main` 函数中,我们创建了一个整数数组 `arr` 和一个目标值 `x`,并将它们传递给 `binarySearch` 函数。如果函数返回 `-1`,则说明目标值在数组中不存在,否则将输出找到的元素的索引。
阅读全文