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