pub fun swap[T](a: *T, b: *T);
交换两个指针处的值
a:指向第一个元素的指针 b:指向第二个元素的指针
pub fun reverse[T](data: *T, len: usize);
就地反转数组
data:指向数组的指针 len:元素数量
pub fun sort[T](data: *T, len: usize, cmp: fun(*T, *T) i64);
使用 Ciura 间隔序列进行就地希尔排序
data:指向数组的指针 len:元素数量 cmp:若 a < b 返回负数、相等返回 0、若 a > b 返回正数的比较器
pub fun is_sorted[T](data: *T, len: usize, cmp: fun(*T, *T) i64) bool;
检查数组是否根据比较器已排序
data:指向数组的指针 len:元素数量 cmp:比较器 ret:如果按非降序排序则为 true
pub fun binary_search[T](data: *T, len: usize, target: *T, cmp: fun(*T, *T) i64) Result[usize, usize];
在已排序的数组中搜索目标
data:指向已排序数组的指针 len:元素数量 target:指向要查找的值的指针 cmp:比较器 ret:找到时返回 ok(index),未找到时返回 err(insert_position)