Skip to content

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 口径,不返回插入点)