使用线性搜索查找数组中最大元素的 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 语言程序,该程序使用递归和迭代方法以及两个示例来使用线性搜索查找数组中的最大元素。在第一个示例中,我们使用了迭代方法,在第二个示例中,我们使用了递归方法。

更新于: 2023 年 5 月 10 日

2K+ 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告