vector-algorithms-0.3.2: Efficient algorithms for vector arraysSource codeContentsIndex
Data.Vector.Algorithms.Merge
PortabilityPortable
StabilityExperimental
MaintainerDan Doel <dan.doel@gmail.com>
Description
This module implements a simple top-down merge sort. The temporary buffer is preallocated to 1/2 the size of the input array, and shared through the entire sorting process to ease the amount of allocation performed in total. This is a stable sort.
Synopsis
sort :: (PrimMonad m, MVector v e, Ord e) => v (PrimState m) e -> m ()
sortBy :: (PrimMonad m, MVector v e) => Comparison e -> v (PrimState m) e -> m ()
sortByBounds :: (PrimMonad m, MVector v e) => Comparison e -> v (PrimState m) e -> Int -> Int -> m ()
type Comparison e = e -> e -> Ordering
Documentation
sort :: (PrimMonad m, MVector v e, Ord e) => v (PrimState m) e -> m ()Source
Sorts an array using the default comparison.
sortBy :: (PrimMonad m, MVector v e) => Comparison e -> v (PrimState m) e -> m ()Source
Sorts an array using a custom comparison.
sortByBounds :: (PrimMonad m, MVector v e) => Comparison e -> v (PrimState m) e -> Int -> Int -> m ()Source
Sorts a portion of an array [l,u) using a custom comparison.
type Comparison e = e -> e -> OrderingSource
A type of comparisons between two values of a given type.
Produced by Haddock version 2.6.1