共计 765 个字符,预计需要花费 2 分钟才能阅读完成。
概念
二分查找(Binary Search)是一种常用的查找算法,可以在有序数组中快速查找一个指定的值。在 Go 语言中,我们可以使用递归或循环的方式来实现二分查找。在本文中,我将演示如何使用循环方式实现二分查找,并提供一个简单的示例代码。
代码示例
func binarySearch(arr []int, target int) int {left, right := 0, len(arr)-1
for left <= right {mid := left + (right-left)/2
if arr[mid] == target {return mid} else if arr[mid] < target {left = mid + 1} else {right = mid - 1}
}
return -1
}
func main() {arr := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
target := 7
result := binarySearch(arr, target)
if result == -1 {fmt.Println("The value is not found.")
} else {fmt.Println("The value is found at index:", result)
}
}
在上面的代码中,我们定义了一个 left
和一个 right
变量,它们分别表示数组的左侧和右侧边界。在每次循环中,我们计算数组的中间位置 mid
,并根据target
和arr[mid]
的大小关系来更新 left
或right
的值。如果 arr[mid]
等于 target
,则说明找到了该值,直接返回mid
的值。如果最终没有找到该值,则返回 -1。
总的来说,二分查找是一种高效的查找算法,可以在有序数组中快速查找一个指定的值。在 Go 语言中,我们可以使用递归或循环的方式来实现二分查找。本文提供了一个使用循环方式实现的示例代码,以帮助读者更好地理解和应用该算法。
正文完
发表至: 算法与数据结构
2023-04-13