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>
*/
}