首页 > 编程语言 >Go-09 Go语言中数组、切片的排序算法以及sort包

Go-09 Go语言中数组、切片的排序算法以及sort包

时间:2022-12-06 12:33:29浏览次数:42  
标签:sort ... 09 升序 Go numSlice2 排序 numSlice

package main

import (
	"fmt"
	"sort"
)

// Golang数组中的切片及sort包
func main() {
	// 1.选择排序
	var numSlice = []int{9, 8, 7, 6, 5, 4}
	for i := 0; i < len(numSlice); i++ {
		for j := i + 1; j < len(numSlice); j++ {
			if numSlice[i] > numSlice[j] {
				temp := numSlice[i]
				numSlice[i] = numSlice[j]
				numSlice[j] = temp

			}
		}
	}
	fmt.Println("选择排序结果:", numSlice) // [4 5 6 7 8 9]
	// 2.冒泡排序
	var numSlice2 = []int{9, 8, 7, 6, 5, 4}
	for i := 0; i < len(numSlice2); i++ {
		for j := i + 1; j < len(numSlice2); j++ {
			if numSlice2[i] > numSlice2[j] {
				temp := numSlice2[i]
				numSlice2[i] = numSlice2[j]
				numSlice2[j] = temp
			}
		}
	}
	fmt.Println("冒泡排序结果:", numSlice2)
	/*	3.sort函数升序排序
		3.1 sort 包的文档:
			http://docscn.studygolang.com/pkg/sort/
			https://golang.org/src/sort
		3.2 sort 升序排序
			对于int、float64和string 数组或者切片的排序,
			go分别提供了sort.Ints()函数、sort.Float64s()函数 和 sort.Strings()函数,默认都是从小到大排序。
		3.3 降序排序
			Go语言中的sort包可以使用sort.Reverse(slice) 来调换slice.Interface.Less,也就是比较函数,
			所以int、float64和string的逆序排序函数可以这么写。
	*/
	// 3.2 升序排序
	intList := []int{2, 4, 3, 5, 7, 6, 9, 8, 1, 0}
	floatList := []float64{4.2, 5.9, 12.4, 10.2, 50.7, 99.9, 31.4, 27.81828, 3.14}
	stringList := []string{"a", "c", "b", "z", "x", "w", "y", "d", "f", "i"}
	sort.Ints(intList)
	sort.Float64s(floatList)
	sort.Strings(stringList)
	fmt.Println("升序排序...", intList)    // [0 1 2 3 4 5 6 7 8 9]
	fmt.Println("升序排序...", floatList)  // [3.14 4.2 5.9 10.2 12.4 27.81828 31.4 50.7 99.9]
	fmt.Println("升序排序...", stringList) // [a b c d f i w x y z]
	// 3.3 降序排序
	sort.Sort(sort.Reverse(sort.IntSlice(intList)))
	sort.Sort(sort.Reverse(sort.Float64Slice(floatList)))
	sort.Sort(sort.Reverse(sort.StringSlice(stringList)))
	fmt.Println("...降序排序", intList)
	fmt.Println("...降序排序", floatList)
	fmt.Println("...降序排序", stringList)

        /*	上面代码的全部执行结果如下所示:
		PS C:\Users\Zhaoshan.lu\go\DaDi> go run .\11.go
		选择排序结果: [4 5 6 7 8 9]
		冒泡排序结果: [4 5 6 7 8 9]
		升序排序... [0 1 2 3 4 5 6 7 8 9]
		升序排序... [3.14 4.2 5.9 10.2 12.4 27.81828 31.4 50.7 99.9]
		升序排序... [a b c d f i w x y z]
		...降序排序 [9 8 7 6 5 4 3 2 1 0]
		...降序排序 [99.9 50.7 31.4 27.81828 12.4 10.2 5.9 4.2 3.14]
		...降序排序 [z y x w i f d c b a]
		PS C:\Users\Zhaoshan.lu\go\DaDi>

	*/

}


标签:sort,...,09,升序,Go,numSlice2,排序,numSlice
From: https://www.cnblogs.com/ludundun/p/16954895.html

相关文章