这是文档:
val sort : ('a -> 'a -> int) -> 'a list -> 'a list
根据比较函数对列表进行升序排序。如果参数比较相等,比较函数必须返回 0,如果第一个较大,则返回正整数,如果第一个较小,则返回负整数(请参阅 Array.sort 以获取完整规范)。例如, compare 是一个合适的比较函数。结果列表按升序排序。List.sort 保证在恒定堆空间(除了结果列表的大小之外)和对数堆栈空间中运行。
当前实现使用合并排序。它在恒定堆空间和对数堆栈空间中运行。
val stable_sort : ('a -> 'a -> int) -> 'a list -> 'a list
与 List.sort 相同,但the sorting algorithm is guaranteed to be stable
(即比较相等的元素保持其原始顺序)。
当前实现使用合并排序。它在恒定堆空间和对数堆栈空间中运行。
我想merge sort
反正是稳定的,对吧?
OCaml 如何产生non-stable merge
排序?
在non-statble merge sort
版本中,它更快吗?