Go语言程序:从切片中获取最大值和最小值
在本文中,我们将学习如何从切片中获取最大和最小元素。切片类似于数组,都是元素的序列。数组是固定长度的元素序列,而切片是动态数组,这意味着它的长度不是固定的,可以改变。切片比数组更高效、更快,并且它们是按引用传递而不是按值传递。让我们通过不同的示例和基于它们的算法来理解这个基本概念。
方法一:使用辅助函数
在此方法中,我们将学习如何使用外部函数从切片中获取最大和最小元素。使用 `fmt.Println()` 函数打印获得的最小值和最大值,该函数用于在 Go 语言中打印语句。
语法
func append(slice, element_1, element_2…, element_N) []T
`append` 函数用于向数组切片添加值。它接受多个参数。第一个参数是要添加值的数组,后面跟着要添加的值。然后,该函数返回包含所有值的最终数组切片。
算法
步骤 1 − 创建一个 `main` 包,并在程序中声明 `fmt`(格式化包),其中 `main` 生成可执行代码,`fmt` 帮助格式化输入和输出。
步骤 2 − 创建一个 `main` 函数,并在该函数中使用 `append` 函数创建一个切片和一些值。
步骤 3 − 在函数内部调用 `minandmax` 函数,并将切片作为参数传递。
步骤 4 − 在 `minandmax` 函数中,将切片的第一个元素设置为 `min` 和 `max`。
步骤 5 − 运行一个循环直到切片的长度,并在第一种情况下检查切片中的数字是否小于 `min` 值,如果小于,则将 `min` 值设置为该数字。
步骤 6 − 在下一个条件中,检查数字是否大于 `max` 值,如果大于,则将 `max` 值设置为该数字。重复此过程,直到循环终止。
步骤 7 − 我们获得 `min` 和 `max` 元素,将其返回到函数并使用 `fmt.Println()` 函数打印,其中 `ln` 指的是换行符。
示例
使用辅助函数从切片中获取最大和最小元素的 Go 语言程序
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
方法二:使用内置函数 `sort`
在此方法中,我们将学习如何使用内置函数 `sort` 从切片中查找最大和最小元素。让我们通过算法和代码了解如何执行此示例。
语法
sort.Ints(slice)
Go 语言中的 `sort` 函数用于对切片中的元素进行排序。它用于对字符串、整数和浮点值进行排序。它按升序对值进行排序,并将切片作为参数。
算法
步骤 1 − 创建一个 `main` 包,并在程序中声明 `fmt`(格式化包),其中 `main` 生成可执行代码,`fmt` 帮助格式化输入和输出。
步骤 2 − 除了这些包之外,还在程序中导入 `sort` 包以查找最小和最大元素。
步骤 3 − 创建一个 `main` 函数,并在该函数中创建一个包含一些值的切片。
步骤 4 − 使用 `sort` 函数对切片进行排序,使用此函数后,我们将获得最小和最大元素。
步骤 5 − 使用 `fmt.Println()` 函数打印最小和最大元素,其中 `ln` 指的是换行符。
示例
使用内置函数 `sort` 从切片中获取最大和最小元素的 Go 语言程序
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
结论
我们使用两种方法执行了查找切片中最小和最大元素的程序。在第一种方法中,我们使用外部函数从切片中查找元素;在第二种方法中,我们使用 `sort` 函数打印最大和最小元素。
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP