切片排序
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)
2、冒泡排序
代码示例
var numSlice = []int{9, 6, 5, 4, 8}
for i := 0; i < len(numSlice); i++ {
for j := 0; j < len(numSlice)-1-i; j++ {
if numSlice[j] > numSlice[j+1] {
temp := numSlice[j]
numSlice[j] = numSlice[j+1]
numSlice[j+1] = temp
}
}
}
fmt.Println(numSlice)
3、sort 升序排序
代码示例
// int
intSlice := []int{2, 4, 3, 5, 7, 6, 9, 8, 1, 0}
sort.Ints(intSlice)
fmt.Println(intSlice)
// float
floatSlice := []float64{4.2, 5.9, 12.4, 10.2}
sort.Float64s(floatSlice)
fmt.Println(floatSlice)
// str
strSlice := []string{"c", "b", "a", "d"}
sort.Strings(strSlice)
fmt.Println(strSlice)
4、sort 降序排序
代码示例
// int
intSlice := []int{2, 4, 3, 5, 7, 6, 9, 8, 1, 0}
sort.Sort(sort.Reverse(sort.IntSlice(intSlice)))
fmt.Println(intSlice)
// float
floatSlice := []float64{4.2, 5.9, 12.4, 10.2}
sort.Sort(sort.Reverse(sort.Float64Slice(floatSlice)))
fmt.Println(floatSlice)
// str
strSlice := []string{"c", "b", "a", "d"}
sort.Sort(sort.Reverse(sort.StringSlice(strSlice)))
fmt.Println(strSlice)