sort包
classDiagram
Interface <|-- IntSlice : 实现
Interface <|-- Float64Slice : 实现
Interface <|-- StringSlice : 实现
class Interface{
+Len() int
+Less(i, j int) bool
+Swap(i, j int)
}
classDiagram
Interface <|.. Sort : 依赖
Sort <|-- Ints : []int
Sort <|-- Float64s : []float64
Sort <|-- Strings : []string
Sort <|-- Slice : []其他类型
classDiagram
Search <|-- SearchInts : []int
Search <|-- SearchFloat64s : []float64
Search <|-- SearchStrings : []string
type Interface interface {
Len() int
Less(i, j int) bool
Swap(i, j int)
}
// 采用快排/堆排/插排组合
func Sort(data Interface)
func Ints(x []int)
func Float64s(x []float64)
func Strings(x []string)
//采用反射自动实现Swap(i, j int)
func Slice(x any, less func(i, j int) bool)
// 稳排采用分段插排+合并组合
func Stable(data Interface)
func SliceStable(x any, less func(i, j int) bool)
// 二分搜索有序序列
func Search(n int, f func(int) bool) int
func SearchInts(a []int, x int) int
func SearchFloat64s(a []float64, x float64) int
func SearchStrings(a []string, x string) int