std.sort
tier: alloc
排序工具(泛型 K:I32/Str;稳定插入排序,确定性) 依赖 K 可比较(< >):单态化后按具体类型派发(I32 标量比较,Str strcmp 字节序)。
pub fn
| Signature | Returns | Description |
|---|---|---|
sorted[K](xs: List[K]) |
List[K] |
稳定升序(返回新 List,原列不变) |
sorted_desc[K](xs: List[K]) |
List[K] |
降序(等值不越过 → 稳定;非 reverse(asc) 的平局序) |
reversed[K](xs: List[K]) |
List[K] |
原序反转(新表) |
sorted_by[K](xs: List[K], less: fn(K, K) -> Bool) |
List[K] |
稳定排序,比较走 less 谓词(less(a, b) = a 应排在 b 之前)。 K 为 I32/Str(闭包经 ct_i 包装;结构体 K 挂账:ct_wrap_i 不收 struct 值)。 |
sorted_by_desc[K](xs: List[K], less: fn(K, K) -> Bool) |
List[K] |
稳定降序(less 同义复用:谓词为"v 应在 prev 前") |
sorted_by_keys[V](xs: List[V], keys: List[Str], desc: Bool) |
List[V] |
键排序(无闭包形参,规避 32 位 ct_i ABI):keys 与 xs 等长,按 keys 字典序 对 xs 稳定排序。键由调用方构造(数字补零/ISO 时间等宽度一致文本)。 |
sort_by[T](xs: List[T], cmp: fn(T, T) -> I32) |
List[T] |
稳定插入排序,比较器注入(cmp < 0 = 前者在前);返回新 List |
binary_search_by[T](xs: List[T], key: T, cmp: fn(T, T) -> I32) |
I32 |
升序前提的二分查找;命中下标,未命中 -1(v0 口径,不返回插入点) |