tensort-1.0.1.0: Tunable sorting for responsive robustness and beyond
Safe HaskellSafe-Inferred
LanguageHaskell2010

Data.Tensort.Subalgorithms.Supersort

Description

This module provides functions for creating Supersort variants for adjudicating between 3 sorting algorithms that use the Sortable type

Synopsis

Documentation

supersort :: (SortAlg, SortAlg, SortAlg, SupersortStrat) -> Sortable -> Sortable Source #

Takes 3 sorting algorithms and a SuperStrat and returns a SortAlg that adjudicates between the 3 sorting algorithms using the provided SuperStrat

Examples

Expand
>>> import Data.Tensort.Subalgorithms.Bubblesort (bubblesort)
>>> import Data.Tensort.Subalgorithms.Permutationsort (permutationsort)
>>> import Data.Tensort.OtherSorts.Mergesort (mergesort)
>>> supersort (mergesort, bubblesort, permutationsort, mundaneSuperStrat) (SortBit [16, 23, 4, 8, 15, 42])
SortBit [4,8,15,16,23,42]
>>> supersort (mergesort, bubblesort, permutationsort, mundaneSuperStrat) (SortRec [(16, 23), (4, 8), (15, 42)])
SortRec [(4,8),(16,23),(15,42)]

mundaneSuperStrat :: SupersortStrat Source #

Takes 3 SortAlgs and adjudicates between them to find a common result to increase robustness

Examples

Expand
>>> import Data.Tensort.Subalgorithms.Bubblesort (bubblesort)
>>> import Data.Tensort.OtherSorts.Mergesort (mergesort)
>>> import Data.Tensort.Subalgorithms.Permutationsort (permutationsort)
>>> supersort (mergesort, bubblesort, permutationsort, mundaneSuperStrat) (SortBit [16, 23, 4, 8, 15, 42])
SortBit [4,8,15,16,23,42]
>>> supersort (mergesort, bubblesort, permutationsort, mundaneSuperStrat) (SortRec [(16, 23), (4, 8), (15, 42)])
SortRec [(4,8),(16,23),(15,42)]

magicSuperStrat :: SupersortStrat Source #

Takes 3 SortAlgs and adjudicates between them to find a common result to increase robustness

Previously we used different SuperStrats for Mundane and Magic Supersorts. Currently there is no need to differentiate, but we keep this here for backwards compatibility and in case this changes again in the future

Examples

Expand
>>> import Data.Tensort.Subalgorithms.Bubblesort (bubblesort)
>>> import Data.Tensort.OtherSorts.Mergesort (mergesort)
>>> import Data.Tensort.Subalgorithms.Permutationsort (permutationsort)
>>> supersort (mergesort, bubblesort, permutationsort, magicSuperStrat) (SortBit [16, 23, 4, 8, 15, 42])
SortBit [4,8,15,16,23,42]
>>> supersort (mergesort, bubblesort, permutationsort, magicSuperStrat) (SortRec [(16, 23), (4, 8), (15, 42)])
SortRec [(4,8),(16,23),(15,42)]