使用标准库排序列表和数组

任务

数据结构与算法 / 排序 / 排序列表和数组

未使用任何包

此菜谱仅使用OCaml 标准库

代码

排序一个 int 值列表,返回一个排序后的副本,并使用 compare 函数。

注意:compare 函数是多态的,适用于所有类型。

let l = [ 1; 90; 42; 27 ]
let l' = List.sort compare a

就地修改数组进行排序。

let a = [| 1; 90; 42; 27 |]
let () = Array.sort compare a

定义一个自定义的 compare 函数(这里是一个不区分大小写的字符串比较),并使用它来排序一个数组。

注意:应用于 ab 的比较函数需要在 a 大于 b 时返回 1,相等时返回 0a 小于 b 时返回 -1

let compare_insensitive a b = 
    compare (String.lowercase_ascii a) (String.lowercase_ascii b)
let a = [| "ABC"; "BCD"; "abc"; "bcd" |]
let () = Array.sort compare_insensitive a

菜谱无法正常工作?注释不清楚或已过时?

提交问题参与此菜谱的贡献