为了更好地理解这个示例,我们始终建议您学习下面列出的 Golang 编程 的基础主题
搜索算法是最常见的过程,你会看到它在任何地方都被实现,用于检查或从存储数据的任何数据结构中检索元素。
在这个 Go 程序中,我们需要使用线性搜索从数组中搜索一个元素。线性搜索是一种非常常见和流行的搜索算法。在这种技术中,通过迭代数据集合来检查每个元素,并搜索给定的元素是否存在。如果找到匹配项,则返回该特定项,否则搜索会顺序进行,直到数据集合的末尾。这意味着对所有项逐个进行顺序搜索。请注意,线性搜索算法的时间复杂度为 O(n)。
这里我们解释如何在 Go 程序中执行线性搜索。我们可以使用内置函数 fmt.println() 来打印任何内容,使用 fmt.scanln() 来读取值。这个函数定义在 fmt 包下,它有助于写入标准输出。为了使用这些函数,我们需要导入 “fmt” 包。
这里变量 A 存储数组元素。其他变量 n, x 分别用作数组大小和搜索元素。使用 for 循环读取数组元素并通过调用函数 linearsearch(A, n, x) 执行线性搜索。在此函数中使用 for 循环从列表开头移动到结尾。它将通过循环迭代检查每个元素,例如 A[i] = x。如果找到匹配项,则打印特定数组索引并返回该特定项,否则顺序搜索,直到数据集合的末尾。最后,如果没有找到匹配项,则打印元素未找到。
下面是 Go 程序中用于实现线性搜索的步骤。
第一步:导入 fmt 包
第二步:启动 main() 函数
步骤 3:声明变量 n, x, i
步骤 4:读取数组大小 n
步骤 5:定义数组 A[] 并
步骤 6:使用 for 循环读取 A[] 数组元素。
步骤 7: 读取要搜索的数字 x。
步骤 8: 调用函数 linearSearch(A, size, x)
步骤 9: 退出
步骤 1: 将 i 设置为 0
步骤 2: 如果 i > n,则转到步骤 7
步骤 3: 如果 A[i] = x,则转到步骤 6
步骤 4: 将 i 设置为 i + 1
步骤 5: 转到步骤 2
步骤 6: 打印找到的元素位置,然后转到步骤 8
步骤 7: 打印元素未找到
步骤 8: 退出
package main
import "fmt"
func linearSearch(A []int, n int, x int) {
for i := 0; i < n; i++ {
if A[i] == x {
fmt.Println("Number found at position : ", i+1)
return
}
}
fmt.Println("Number not found")
return
}
func main() {
fmt.Println("Enter the size of the array")
var n int
fmt.Scan(&n)
var x int
A := make([]int, n, 100)
fmt.Println("Enter elements of the array : ")
for i := 0; i < n; i++ {
fmt.Scan(&A[i])
}
fmt.Println("Enter the number to be searched")
fmt.Scan(&x)
linearSearch(A, n, x)
}
Enter the size of the array 5 Enter elements of the array : 10 55 22 80 63 Enter the number to be searched 22 Number found at position : 3