vector-algorithms-0.9.0.2: Efficient algorithms for vector arrays
Copyright(c) 2008-2011 Dan Doel
MaintainerDan Doel <dan.doel@gmail.com>
StabilityExperimental
PortabilityPortable
Safe HaskellSafe-Inferred
LanguageHaskell2010

Data.Vector.Algorithms.Merge

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

Documentation

sort :: (PrimMonad m, MVector v e, Ord e) => v (PrimState m) e -> m () Source #

Sorts an array using the default comparison.

sortUniq :: (PrimMonad m, MVector v e, Ord e) => v (PrimState m) e -> m (v (PrimState m) e) Source #

A variant on sort that returns a vector of unique elements.

sortBy :: (PrimMonad m, MVector v e) => Comparison e -> v (PrimState m) e -> m () Source #

Sorts an array using a custom comparison.

sortUniqBy :: (PrimMonad m, MVector v e) => Comparison e -> v (PrimState m) e -> m (v (PrimState m) e) Source #

A variant on sortBy which returns a vector of unique elements.

type Comparison e = e -> e -> Ordering Source #

A type of comparisons between two values of a given type.