Golang程序 从片断中获取最大和最小元素
在这篇文章中,我们将看到如何从一个片断中获取最大和最小的元素。分片是一个元素的序列,就像一个数组。数组是一个固定的元素序列,而分片是一个动态数组,意味着它的值不是固定的,可以改变。分片比数组更有效、更快速,而且它们是通过引用而不是通过值来传递。让我们通过不同的例子和基于它们的算法来理解这个基本概念。
方法1:使用辅助函数
在这个方法中,我们将学习如何使用一个外部函数从切片中获得最大和最小的元素。获得的最小和最大值将使用fmt.Println()函数打印在屏幕上,该函数在Golang中用于打印语句。
语法
func append(slice, element_1, element_2…, element_N) []T
append函数用于向一个数组片断添加值。它需要一些参数。第一个参数是我们希望添加的数组,后面是要添加的值。然后,该函数返回包含所有值的数组的最终片断。
算法
- 第1步 – 创建一个包main,并在程序中声明fmt(format package)包,其中main产生可执行代码,fmt帮助格式化输入和输出。
-
第2步 – 创建一个函数main,并在该函数中使用append函数创建一个片断和其中的一些值。
-
第3步– 调用函数minandmax,并在函数中以片断为参数。
-
第4步– 在函数minandmax中,设置片断的第一个元素等于min,也等于max。
-
第5步 – 循环运行,直到片断的长度,并在第一种情况下检查片断中的数字是否小于最小值,设置最小值等于该数字。
-
第6步 – 在下一个条件中,如果数字大于最大值,则设置最大值等于该数字。重复这个过程直到循环结束。
-
第7步 – 我们得到最小和最大的元素,它被返回到函数中并使用fmt.Println()函数打印,其中ln指的是新行。
例子
使用辅助函数从切片中获得最大和最小元素的Golang程序
package main
import (
"fmt"
)
func main() {
var values []int //creating slice
values = append(values,10) //fill the elements in slice using append function
values = append(values, 8)
values = append(values, 20)
values = append(values, 4)
values = append(values, 56)
fmt.Println("The slice containing the values is:", values)
min, max := minandmax(values)
fmt.Println("Minimum element in the slice is:", min) //print min element
fmt.Println("Maximum element in the slice is:", max) //print max element
}
func minandmax(values []int) (int, int) {
min := values[0] //assign the first element equal to min
max := values[0] //assign the first element equal to max
for _, number := range values {
if number < min {
min = number
}
if number > max {
max = number
}
}
return min, max
}
输出
The slice containing the values is: [10 8 20 4 56]
Minimum element in the slice is: 4
Maximum element in the slice is: 56
方法2:使用内置函数排序
在这个方法中,我们将看到如何使用内置函数排序从分片中找到最大和最小的元素。让我们通过算法和代码来看看如何执行这个例子。
语法
sort.Ints(slice)
Golang中的sort函数是用来对切片中的元素进行排序。它用于对字符串、整数和浮点数进行排序。它以升序排序,并以切片为参数进行排序。
算法
- 第1步 – 创建一个包main,并在程序中声明fmt(格式包)包,其中main产生可执行代码,fmt帮助格式化输入和输出。
-
第2步 – 与这些包一起,在程序中导入sort包以查找最小和最大元素。
-
第3步 – 创建一个函数main,并在该函数中创建一个包含一些数值的片断。
-
第4步 – 使用sort函数对切片进行排序,使用该函数后我们将得到最小和最大元素。
-
第5步 – 使用fmt.Println()函数打印最小和最大元素,其中ln指的是新行。
例子
Golang程序使用内置函数sort从slice中获得最大和最小元素
package main
import (
"fmt"
"sort"
)
func main() {
values := []int{10, 8, 43, 52, 98} // create slice
fmt.Println("The values in slice are:", values)
sort.Ints(values) // sort the values finding min and max element
fmt.Println("Minimum value in the slice is:", values[0]) //print min element
fmt.Println("Maximum value in the slice is:", values[len(values)-1]) //print max element
}
输出
The values in slice are: [10 8 43 52 98]
Minimum value in the slice is: 8
Maximum value in the slice is: 98
结论
我们用两种方法执行了从片断中寻找最小和最大元素的程序。在第一种方法中,我们使用一个外部函数从切片中寻找元素,在第二种方法中,我们使用排序函数来打印最大和最小元素。
极客教程