Golang 程序实现线性搜索


2022年4月2日, 学习e教程
1971

为了更好地理解这个示例,我们始终建议您学习下面列出的 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: 退出

实现 Linearsearch(A, Size, X) 函数的步骤

步骤 1将 i 设置为 0

步骤 2如果 i > n,则转到步骤 7

步骤 3如果 A[i] = x,则转到步骤 6

步骤 4将 i 设置为 i + 1

步骤 5转到步骤 2

步骤 6打印找到的元素位置,然后转到步骤 8

步骤 7打印元素未找到

步骤 8退出

 

Golang 源代码

                                          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