//反转数组
sort.SliceStable(tmp, func(i, j int)bool{
return true
})
//升序
sort.SliceStable(tmp, func(i, j int)bool{
return tmp[i] < tmp[j]
})
//降序
sort.SliceStable(tmp, func(i, j int)bool{
return tmp[i] > tmp[j]
})
举例:
package main
import (
"fmt"
"sort")
func main(){
sliceStable([]int{4, 3, 10, 2, 8}, 1)
sliceStable([]int{4, 3, 10, 2, 8}, 2)
sliceStable([]int{4, 3, 10, 2, 8}, 3)
// [2 3 4 8 10]
// [10 8 4 3 2]
// [8 2 10 3 4]
}
func sliceStable(tmp []int, op int){
if op == 1{
//升序
sort.SliceStable(tmp, func(i, j int)bool{
return tmp[i] < tmp[j]
})
}else if op == 2{
//降序
sort.SliceStable(tmp, func(i, j int)bool{
return tmp[i] > tmp[j]
})
}else if op == 3{
//反转数组
sort.SliceStable(tmp, func(i, j int)bool{
return true
})
}
fmt.Println(tmp)
}