当前位置: 技术文章>> go中的search详细介绍与代码示例

文章标题:go中的search详细介绍与代码示例
  • 文章分类: 后端
  • 10783 阅读
文章标签: go go基础

在Go语言中,search通常指的是二分查找算法(Binary Search)。二分查找是一种高效的搜索算法,它在一个有序的数组中查找特定的元素。通过将目标值与数组的中间元素进行比较,可以排除一半的搜索空间,从而减少搜索的时间复杂度。

下面是一个使用Go语言实现二分查找算法的示例代码:


package 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

} else if arr[mid] < target {

low = mid + 1  

} else {

high = mid - 1  

}

}



return -1 // 目标值不在数组中  

}



func main() {

// 示例数组(有序)  

arr := []int{1, 3, 5, 7, 9, 11, 13, 15, 17, 19}



// 查找目标值  

target := 15  



index := binarySearch(arr, target)

if index != -1 {

fmt.Printf("目标值 %d 在数组中的索引位置为 %d\n", target, index)

} else {

fmt.Printf("目标值 %d 不在数组中\n", target)

}

}

在上面的示例代码中,我们定义了一个名为binarySearch的函数,它接受一个有序整数数组arr和目标值target作为参数。函数使用二分查找算法在数组中查找目标值,并返回目标值的索引位置。如果目标值不在数组中,则返回-1。

main函数中,我们创建了一个示例数组(有序),并指定要查找的目标值。然后,我们调用binarySearch函数来执行搜索操作,并根据返回的索引位置打印相应的结果。