Skip to content

8. Integer and Distribution Sorting

Non-comparison sorts: counting, radix, and bucket sort families, string sorting, and suffix array construction.

indexslugname
216counting-sortCounting Sort
217stable-counting-sortStable Counting Sort
218key-indexed-countingKey Indexed Counting
219radix-sortRadix Sort
220lsd-radix-sortLSD Radix Sort
221msd-radix-sortMSD Radix Sort
222american-flag-sortAmerican Flag Sort
223in-place-radix-sortIn Place Radix Sort
224binary-radix-sortBinary Radix Sort
225burstsortBurstsort
226bucket-sortBucket Sort
227uniform-bucket-sortUniform Bucket Sort
228histogram-sortHistogram Sort
229pigeonhole-sortPigeonhole Sort
230flashsortFlashsort
231spreadsortSpreadsort
232burstsort-string-sortingBurstsort String Sorting
233radix-exchange-sortRadix Exchange Sort
234ska-sortSka Sort
235ips4oIPS4o
236integer-sample-sortInteger Sample Sort
237word-radix-sortWord Radix Sort
238bytewise-radix-sortBytewise Radix Sort
239most-significant-byte-sortMost Significant Byte Sort
240least-significant-byte-sortLeast Significant Byte Sort
241american-flag-string-sortAmerican Flag String Sort
242multikey-quicksortMultikey Quicksort
243three-way-string-quicksortThree Way String Quicksort
244suffix-array-doubling-sortSuffix Array Doubling Sort
245suffix-array-radix-sortSuffix Array Radix Sort
246induced-sortingInduced Sorting
247saisSA IS
248skew-suffix-array-sortSkew Suffix Array Sort
249dc3-suffix-array-sortDC3 Suffix Array Sort
250dc7-suffix-array-sortDC7 Suffix Array Sort
251counting-sort-negative-keysCounting Sort with Negative Keys
252coordinate-compression-sortCoordinate Compression Sort
253sparse-key-counting-sortSparse Key Counting Sort
254radix-sort-floating-pointFloating Point Radix Sort
255signed-integer-radix-sortSigned Integer Radix Sort
Stable Counting SortStable variant of counting sort using prefix sums to preserve relative order of equal keys.
2 min
Key Indexed CountingCounting-based stable sorting technique that maps keys to index ranges using frequency and prefix sums.
2 min
Radix SortSort integer or string keys by processing one digit, byte, or character position at a time.
3 min
LSD Radix SortSort fixed width keys by processing digits from least significant to most significant using a stable inner sort.
2 min
MSD Radix SortSort keys by processing the most significant digit first and recursively sorting subarrays.
2 min
American Flag SortIn place radix sort that partitions elements by digit using cycle leader permutation.
3 min
In Place Radix SortSort digit based keys by redistributing elements inside the original array with only small auxiliary bucket state.
4 min
Binary Radix SortSort integers by processing bits directly using partitioning instead of counting arrays.
3 min
BurstsortCache efficient string sorting algorithm that builds a trie and sorts buckets lazily for high performance on large text data.
3 min
Bucket SortDistribute elements into buckets based on value ranges and sort each bucket independently.
2 min
Uniform Bucket SortBucket sort variant that assumes uniform distribution and uses equal-width buckets with simple mapping.
3 min
Histogram SortSort elements by building a frequency histogram and reconstructing the output from cumulative counts.
2 min
Pigeonhole SortSort integer keys by placing each value into a direct address slot over a small contiguous range.
3 min
FlashsortDistribution sorting algorithm that approximates uniform distribution and then refines with insertion sort.
3 min
SpreadsortHybrid distribution and comparison sort that adapts between radix-like partitioning and comparison sorting.
2 min
Burstsort String SortingString sorting method that groups strings by prefixes in a trie and sorts leaf buckets for cache efficient lexicographic order.
4 min
Radix Exchange SortIn place binary radix sort that partitions keys by bits from most significant to least significant.
3 min
Ska SortHigh performance radix sort variant using cache friendly block partitioning and branchless techniques.
3 min
IPS4oIn-place parallel super scalar samplesort for high performance comparison sorting on modern multicore machines.
3 min
Integer Sample SortSample sort specialized for integer keys using range-based partitioning and optional radix-style bucket classification.
3 min
Word Radix SortRadix sort specialized for fixed-width machine words using byte or bit extraction for high throughput.
3 min
Bytewise Radix SortRadix sort that processes fixed-width keys one byte at a time using 256 counting buckets.
3 min
Most Significant Byte SortMSD radix sort variant that partitions keys by the most significant byte and recursively sorts subarrays.
3 min
Least Significant Byte SortLSD radix sort variant that processes keys byte by byte from least significant to most significant.
3 min
American Flag String SortIn-place MSD radix string sort that partitions strings by character using American flag style bucket permutation.
4 min
Multikey QuicksortString sorting algorithm that partitions strings by the character at the current depth using three-way quicksort.
3 min
Three Way String QuicksortString sorting algorithm that uses three-way partitioning on characters to efficiently handle repeated prefixes.
3 min
Suffix Array Doubling SortConstruct a suffix array by iteratively sorting suffixes using doubling technique with rank pairs.
3 min
Suffix Array Radix SortConstruct a suffix array by sorting rank pairs with radix or counting sort during the doubling method.
4 min
Induced SortingLinear-time technique for suffix array construction that induces order of suffixes from a subset of sorted suffixes.
3 min
SA ISLinear-time suffix array construction algorithm based on induced sorting of LMS suffixes.
3 min
Skew Suffix Array SortLinear-time suffix array construction using the DC3 algorithm that recursively sorts positions modulo 3.
3 min
DC3 Suffix Array SortDifference cover modulo 3 algorithm for linear-time suffix array construction using radix sorting and merging.
3 min
DC7 Suffix Array SortDifference cover modulo 7 suffix array construction method that generalizes DC3 with a larger recursive sample.
3 min
Counting Sort with Negative KeysExtend counting sort to handle negative integers by shifting keys into a nonnegative index range.
2 min
Coordinate Compression SortSort values by mapping them to a dense rank space and ordering by compressed indices.
2 min
Sparse Key Counting SortCounting sort variant that stores counts only for keys that appear, avoiding dense arrays over large key ranges.
2 min
Floating Point Radix SortRadix sort for floating-point numbers by transforming their bit representation to preserve numeric order.
3 min
Signed Integer Radix SortRadix sort for signed integers by transforming values to preserve ordering across negative and positive ranges.
3 min
Counting SortSort integers by counting occurrences of each key and reconstructing the output in linear time.
3 min