Abstract
Bitonic merge sort.
Runs in O(n log²(n)) work and O(log²(n)) span. Internally pads the array to the next power of two, so a poor fit for some array sizes.
Synopsis
val merge_sort | [n] 't : | (<=: t -> t -> bool) -> (xs: [n]t) -> *[n]t |
val merge_sort_by_key | [n] 't 'k : | (key: t -> k) -> (<=: k -> k -> bool) -> (xs: [n]t) -> [n]t |
Description
- ↑val merge_sort [n] 't: (<=: t -> t -> bool) -> (xs: [n]t) -> *[n]t
Sort an array in increasing order.
- ↑val merge_sort_by_key [n] 't 'k: (key: t -> k) -> (<=: k -> k -> bool) -> (xs: [n]t) -> [n]t
Like
merge_sort
, but sort based on key function.