Golang程序将数组中的元素按升序排序
在本教程中,我们将看到写一个go语言程序来对一个数组进行升序排序。
下面的代码说明了我们如何在golang中对一个数组的元素进行升序排序。
第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步 – 现在我们需要调用排序包中的函数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()函数,在第三个例子中,我们使用了另一种Slicing的方法。