使用线性搜索在Golang程序中查找数组中的最大元素
在这个Golang文章中,我们将学习如何使用递归和迭代方法通过线性搜索来查找数组中的最大元素。
语法
func findMax(arr []int) int {…}
findMax()函数用于通过线性搜索迭代的方式查找数组中的最大元素。它将一个整型数组作为参数。
func findMax(arr []int, n int) int {…}
findMax()函数用于通过线性搜索递归的方式查找数组中的最大元素。它将一个整型数组和数组的大小作为参数。
算法
- 第1步 ——首先,我们需要导入fmt包。
-
第2步 ——现在,创建一个findMax()函数,使用线性搜索在数组中查找最大元素。
-
第3步 ——它以数组作为输入,返回数组中出现的最大元素。
-
第4步 ——如果数组为空或数组长度等于0,则函数返回-1。
-
第5步 ——如果数组不为空,它将变量max初始化为数组的第一个元素。
-
第6步 ——然后,它迭代数组,并在任何元素的值大于max的当前值时更新max值。
-
第7步 ——开始main()函数。在main()函数内,创建一个包含一些元素的数组。
-
第8步 ——现在,调用findMax()函数并将数组作为参数传递给函数。
-
第9步 ——进一步地,使用fmt.Println()函数,在屏幕上打印出从数组和所定义的结果中得出的最大元素。
示例1:使用迭代法的Go语言程序在数组中查找最大元素
在这个例子中,我们将使用迭代法定义一个findMax()函数,该函数被用于通过线性搜索在一个数组中查找最大元素。
package main
import "fmt"
func findMax(arr []int) int {
if len(arr) == 0 {
return -1
}
max := arr[0]
for i := 1; i < len(arr); i++ {
if arr[i] > max {
max = arr[i]
}
}
return max
}
func main() {
arr := []int{13, 45, 67, 22, 97, 43, 74}
max := findMax(arr)
fmt.Println("Array defined is:", arr)
fmt.Println("Maximum element in the array is:", max)
}
输出
Array defined is: [13 45 67 22 97 43 74]
Maximum element in the array is: 97
示例2
在这个例子中,我们将使用递归法定义一个findMax()函数,该函数被用于通过线性搜索在一个数组中查找最大元素。
<
package main
import "fmt"
func findMax(arr []int, n int) int {
if n == 1 {
return arr[0]
}
max := findMax(arr, n-1)
if arr[n-1] > max {
return arr[n-1]
}
return max
}
func main() {
arr := []int{13, 25, 67, 42, 80, 56, 44}
max := findMax(arr, len(arr))
fmt.Println("Array defined is:", arr)
fmt.Println("Maximum element in the array is:", max)
}
输出
Array defined is: [13 25 67 42 80 56 44]
Maximum element in the array is: 80
结论
我们已经成功地编译和执行了一个Go语言程序,通过递归和迭代的方式查找数组中的最大元素,还提供了两个示例。在第一个示例中,我们使用了迭代方法,而在第二个示例中,我们使用了递归方法。