Go语言程序:按升序排列数组元素


在本教程中,我们将学习如何编写一个 Go 语言程序,用于按升序排列数组。

使用用户自定义函数按升序排列数组

以下代码演示了如何在 Go 语言中按升序排列元素数组。

算法

步骤 1 − 导入 fmt 包。

步骤 2 − 定义一个函数 sortArray() 来排序给定的数组。

步骤 3 − 将参数传递给 sortArray() 函数,其中一个是我们要排序的整数数组,另外两个变量用于保存临时值。

步骤 4 − 使用 for 循环和 if 条件来排序数组。第一个 for 循环用于遍历未排序的数组。

步骤 5 − 第二个 for 循环用于获取数组中存在的最小值。然后通过使用一个临时变量,我们将较小的值放在较大的值之后。

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

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

步骤 8 − 然后我们需要调用 sortArray() 函数,并将要排序的数组以及 temp 和 min 整数类型变量传递给它。

步骤 9 − 存储函数返回的数组,并使用 fmt.Println() 函数在屏幕上打印它。

示例

package main
import "fmt"
func sortArray(arr [5]int, min int, temp int) [5]int {
   for i := 0; i <= 4; i++ {
      min = i
      for j := i + 1; j <= 4; j++ {
         if arr[j] < arr[min] {
         
            // changing the index to show the min value
            min = j
         }
      }
      temp = arr[i]
      arr[i] = arr[min]
      arr[min] = temp
   }
   return arr
}
func main() {
   arr := [5]int{50, 30, 20, 10, 40}
   fmt.Println("The unsorted array entered is:", arr)
   var min int = 0
   var temp int = 0
   array := sortArray(arr, min, temp)
   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: [10 20 30 40 50]

使用排序函数对整数数组进行排序

以下代码演示了如何在 Go 编程语言中使用预定义函数对字符串数组进行排序。

语法

sort.Ints(arr)

Ints 函数存在于 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.Ints(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: [3 4 5 7 8 9]

使用切片方法按升序排列字符串数组

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

语法

sort.Sort(sort.StringSlice(arr))

StringSlice() 函数存在于 sort 包中,它将要排序的字符串数组作为参数,并返回排序后的字符串。

算法

步骤 1 − 导入 fmt 和 sort 包。

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

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

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

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

示例

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

输出

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

结论

我们已经成功编译并执行了一个 Go 语言程序,用于按升序排列数组,并附带示例。在第一个示例中,我们使用了用户自定义函数,在第二个示例中,我们使用了 Sort() 的内置函数,在第三个示例中,我们使用了另一种切片方法。

更新于: 2023年1月2日

2K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告