-
Notifications
You must be signed in to change notification settings - Fork 0
/
simple.go
37 lines (32 loc) · 1.76 KB
/
simple.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package sortslice
import "sort"
// SortByIndex sorts the slice `a` using the index-based comparison function `iLess`.
// SortByIndex 使用基于索引的比较函数 `iLess` 对切片 `a` 进行排序。
func SortByIndex[V any](a []V, iLess func(i, j int) bool) {
// Sort the slice using the index comparison function.
// 使用索引比较函数对切片进行排序。
sort.Sort(NewSortByIndex(a, iLess))
}
// SortByValue sorts the slice `a` using the value-based comparison function `vLess`.
// SortByValue 使用基于值的比较函数 `vLess` 对切片 `a` 进行排序。
func SortByValue[V any](a []V, vLess func(a, b V) bool) {
// Sort the slice using the value comparison function.
// 使用值比较函数对切片进行排序。
sort.Sort(NewSortByValue(a, vLess))
}
// SortIStable sorts the slice `a` using the index-based comparison function `iLess`
// and preserves the original order of equal elements (stable sort).
// SortIStable 使用基于索引的比较函数 `iLess` 对切片 `a` 进行排序,并保持相等元素的原始顺序(稳定排序)。
func SortIStable[V any](a []V, iLess func(i, j int) bool) {
// Perform a stable sort using the index comparison function.
// 使用索引比较函数执行稳定排序。
sort.Stable(NewSortByIndex(a, iLess))
}
// SortVStable sorts the slice `a` using the value-based comparison function `vLess`
// and preserves the original order of equal elements (stable sort).
// SortVStable 使用基于值的比较函数 `vLess` 对切片 `a` 进行排序,并保持相等元素的原始顺序(稳定排序)。
func SortVStable[V any](a []V, vLess func(a, b V) bool) {
// Perform a stable sort using the value comparison function.
// 使用值比较函数执行稳定排序。
sort.Stable(NewSortByValue(a, vLess))
}