概述
golang的sort.Slice包可以用来对一个完整的切片或部分切片进行排序完整的切片以asc顺序进行排序。
package main
import (
"fmt"
"sort"
)
func main() {
nums := []int{3, 4, 2, 1}
sort.Slice(nums, func(i, j int) bool {
return nums[i] < nums[j]
})
fmt.Println(nums)
}
输出
[1,2,3,4]
全切片按降序排序
package main
import (
"fmt"
"sort"
)
func main() {
nums := []int{3, 4, 2, 1}
sort.Slice(nums, func(i, j int) bool {
return nums[i] > nums[j]
})
fmt.Println(nums)
}
输出
[4 3 2 1]
部分片断排序
package main
import (
"fmt"
"sort"
)
func main() {
nums := []int{3, 4, 2, 1}
start := 2
end := 4
sort.Slice(nums[start:end], func(i, j int) bool {
return nums[start+i] < nums[start+j]
})
fmt.Println(nums)
}
输出
[3 4 1 2]
请注意,它已经将最后两个元素按asc顺序排序。