Golang 按降序对数组元素进行排序

Golang 按降序对数组元素进行排序

在本教程中,我们将了解如何编写一个Go语言程序,以按降序对数组进行排序。在数学中,降序是一种下一个元素小于前一个元素的顺序。

使用外部函数按降序对数组进行排序

在本示例中,我们将演示如何编写一个程序,使用用户定义的函数按降序对整数数组进行排序。

步骤

步骤1 - 导入fmt包

步骤2 - 定义一个sortDesc()函数,用于对给定的数组进行排序。该函数接受一个参数,即我们希望排序的整数数组。

步骤3 - 该函数使用两个for循环和if条件来对数组进行排序。

步骤4 - 使用第一个for循环迭代未排序的数组,并使用第二个for循环获取数组中的最小值。

步骤5 - 然后使用一个临时变量将较小的值放在较大的值后面。

步骤6 - 开始main()函数。

步骤7 - 初始化一个整数数组并向其存储值。将未排序的数组打印在屏幕上。

步骤8 - 然后我们需要通过传递要排序的数组作为参数来调用sortDesc()函数。

步骤9 - 将函数返回的数组存储起来,并使用fmt.Println()函数将其打印在屏幕上。

示例

以下代码演示了如何在Go编程语言中按降序对数组元素进行排序。

package main
import "fmt"
func sortDesc(arr [5]int) [5]int {
   for i := 0; i < len(arr); i++ {
   for j := 1 + i; j < len(arr); j++ {
         if arr[i] < arr[j] {
            intermediate := arr[i]
            arr[i] = arr[j]
            arr[j] = intermediate
         }
      }
   }
   return arr
}
func main() {
   arr := [5]int{50, 30, 20, 10, 40}
   fmt.Println("The unsorted array entered is:", arr)
   array := sortDesc(arr)
   fmt.Println()
   fmt.Println("The final array obtained after sorting is:", array)
}

输出

The unsorted array entered is: [50 30 20 10 40]

The final array obtained after sorting is: [50 40 30 20 10]

使用Intslice()函数按降序对数组进行排序

以下代码示例了如何在Go编程语言中使用预定义函数按降序对整数数组进行排序。

语法

sort.Sort(sort.Reverse(sort.IntSlice(arr)))

IntSlice()函数存在于sort包中,用于对整数数组进行排序。该函数接受一个未排序的整数数组,并返回通过排序的数组。Reverse()函数存在于sort包中。该函数以要按相反顺序排序的数据作为参数,并返回通过反转其值而获得的数组切片。

步骤

第1步 - 导入fmt和sort包。

第2步 - 开始main()函数。

第3步 - 初始化一个整数数组并将值存储在其中。在屏幕上打印未排序的数组。

第4步 - 现在,我们需要调用sort包中的Ints()函数,将要排序的数组作为参数传递给该函数。

第5步 - arr数组现在已排序。我们可以使用fmt.Println()函数将其打印在屏幕上。

示例

package main
import (
   "fmt"
   "sort"
)
func main() {
   var arr = []int{9, 8, 7, 4, 5, 3}
   fmt.Println("Unsorted array of strings is", arr)
   sort.Sort(sort.Reverse(sort.IntSlice(arr)))
   fmt.Println("The above array is sorted and the result is:", arr)
}

输出

Unsorted array of strings is [9 8 7 4 5 3]
The above array is sorted and the result is: [9 8 7 5 4 3]

使用字符串切片方法将字符串数组按降序排序

让我们现在编写一个程序,使用Go编程语言中的预定义函数按降序对字符串数组进行排序。

语法

sort.Sort(sort.Reverse(sort.StringSlice(arr)))

StringSlice()函数位于sort包中,它以待排序的字符串数组作为参数,并返回排序后的字符串。Reverse()函数也位于sort包中。该函数以以相反顺序排序的数据作为参数,并通过翻转其值来返回数组的切片。

步骤

步骤1 - 导入fmt和sort包。

步骤2 - 开始main()函数。

步骤3 - 初始化一个字符串数组并为其存储值。在屏幕上打印未排序的数组。

步骤4 - 现在我们需要调用sort包中的StringSlice()函数,将要排序的数组作为参数传递给该函数。

步骤5 - arr数组现在已经排序。我们可以使用fmt.Println()函数将其打印到屏幕上。

示例

package main
import (
   "fmt"
   "sort"
)
func main() {
   var arr = []string{"a", "b", "c", "d", "s"}
   fmt.Println("Unsorted array of strings is", arr)
   sort.Sort(sort.Reverse(sort.StringSlice(arr)))
   fmt.Println("The above array is sorted and the result is:", arr)
}

输出

Unsorted array of strings is [a b c d s]
The above array is sorted and the result is: [s d c b a]

结论

我们已成功编译并执行了一段Go语言程序,用于对数组进行降序排序,附带示例。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程