Namespace MoreStructures.Lists.Sorting.QuickSort
Classes
EndIndexPivotSelectionStrategy
A IPivotSelectionStrategy always picking the highest index of the window.
IdentityShuffleStrategy
A IShuffleStrategy which does nothing to its input, and returns it as it is.
LomutoThreeWayPartitionStrategy
A IThreeWayPartitionStrategy implementing the Lomuto partition scheme into three segments, the middle containing only and all the items equals to the pivot.
LomutoTwoWayPartitionStrategy
A IThreeWayPartitionStrategy implementing the Lomuto partition scheme into three segments, the middle always being a single pivot.
MiddleIndexPivotSelectionStrategy
A IPivotSelectionStrategy always picking the index of the window in the middle.
RecursiveQuickSort
An IInputMutatingSort implementation based on the quicksort algorithm.
StartIndexPivotSelectionStrategy
A IPivotSelectionStrategy always picking the lowest index of the window.
Interfaces
IPivotSelectionStrategy
An algorithm to select the pivot from the provided window of a list, to be used by a IThreeWayPartitionStrategy, to partition the window into three segments.
IShuffleStrategy
An algorithm shuffling the specified window of the provided list.
IThreeWayPartitionStrategy
An algorithm partitioning the specified window of the provided list "3-way", i.e. into three adjacent segments:
- the first, named left segment, containing all items smaller or equal than the pivot,
- the second, named middle segment, containing all items equals to the pivot,
- and the third, named right segment, containing all items bigger or equal than the pivot.