使用标准库排序列表和数组
任务
数据结构与算法 / 排序 / 排序列表和数组
未使用任何包
此菜谱仅使用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
函数(这里是一个不区分大小写的字符串比较),并使用它来排序一个数组。
注意:应用于 a
和 b
的比较函数需要在 a
大于 b
时返回 1
,相等时返回 0
,a
小于 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