Golang程序 从片断中获取最大和最小元素

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

结论

我们用两种方法执行了从片断中寻找最小和最大元素的程序。在第一种方法中,我们使用一个外部函数从切片中寻找元素,在第二种方法中,我们使用排序函数来打印最大和最小元素。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程