isaee.xyzINTERACTIVE FIELD NOTES

A GUIDED VISUAL STORY · SORTING

This looks wrong.
It still sorts.

A scientist tried to write a bad sorting algorithm. It worked.
AI found better tiny routines. How was there still room to improve?

Follow the numbers. Leave with a way to think.

↓ Just scroll. The illustrations follow the story.

Prefer experimenting? Open the hands-on playground · Research through 13 September 2026

01 / A STRANGE MACHINE

A wrong-looking start.

A STRANGE MACHINE1 / 5
Scroll through the explanation to reveal each stage.
01

Six numbers. One question.

Can a procedure that first puts the largest number at the front still finish with the smallest first? Keep your prediction in mind. Scroll to watch what happens.

02

First, it does the suspicious thing.

The first round moves 6 to the front. That looks backwards. But one intermediate picture cannot tell you where a procedure will finish.

03

Watch the boundary, not one number.

After the third round, the first three positions are ordered, with 6 at their right edge. That growing ordered section is the useful clue.

04

The promise survives.

Each new value is inserted into the ordered section, and its maximum travels to the new boundary. At the last boundary, the whole list is ordered.

05

A reason is stronger than a lucky example.

Stanley Fung described this surprising all-pairs algorithm in 2021. For each position, it visits every position and swaps when the first value is smaller. The preserved promise explains its result; a few successful examples alone would not. Read the source ↗

02 / SAME PICTURE, DIFFERENT WORK

One destination. Different journeys.

SAME PICTURE, DIFFERENT WORK1 / 4
Scroll through the explanation to reveal each stage.
01

Give both methods the same job.

These eight strips belong to one illustration. Each carries a number specifying its correct position. The computer reads those numbers; it does not recognise mountains.

02

Insertion reuses a growing ordered section.

Insertion sort takes the next strip and moves it left past larger neighbours. Notice how the smaller strips have gathered on the left.

03

Merge combines ordered groups.

Merge sort builds ordered groups and combines them, taking the smaller front record next. It uses temporary storage. Here we show checkpoints where every strip is back in the main row.

04

Same answer does not mean same work.

Both preserve all eight strips and reconstruct the picture. The counters show key comparisons and main-array writes for these teaching implementations. Scroll distance and animation duration are not measures of execution time.

03 / BETTER FOR WHAT?

Change the input. Change the work.

BETTER FOR WHAT?1 / 3
Scroll through the explanation to reveal each stage.
01

A shuffled list needs repair.

Compare insertion sort with selection sort, which repeatedly finds the smallest remaining item. For this small shuffled input, inspect the actual work before declaring a winner.

02

Now give them almost-finished work.

Only two neighbours are out of place. Insertion can reuse the existing order. Selection still scans the unfinished section to find its minimum. The same input size does not imply the same work.

03

Sometimes the keys offer a shortcut.

These strips have unique destination numbers from 1 to 8. With eight output slots, place each directly in its numbered slot: eight placements, plus output storage. A small, known key range changes the problem. For general records with duplicate integer keys, counting sort needs counts and assigned output positions.

04 / WHAT MUST SURVIVE?

An ordered column can still be wrong.

WHAT MUST SURVIVE?1 / 3
Scroll through the explanation to reveal each stage.
01

Start with three real records.

An expense is more than its amount. “Groceries, ₹840” is one record. The amount is the sorting key. Its label must travel with it.

02

Sort only the amounts.

The numbers now increase, but groceries suddenly cost ₹180 and the notebook ₹840. This is an ordered column and a broken set of records. Correct sorting must preserve their associations.

03

Move whole records instead.

Now notebook, train and groceries remain attached to their original amounts. In Excel or Google Sheets, the practical lesson is to include the complete record range. We do not claim either product uses a particular internal sorting algorithm. Explore ties and everyday examples ↗

05 / WHERE AI ENTERS

Even tiny routines leave room to search.

WHERE AI ENTERS1 / 3
Scroll through the explanation to reveal each stage.
01

A plausible program can fail.

Here is a toy program: compare positions 1 and 2, then 2 and 3, exchanging values when they are reversed. It sorts some inputs. Testing all six orders of three distinct values reveals the failures.

02

One more instruction fixes this toy.

Compare positions 1 and 2 again. All six inputs now pass. This is a classic three-comparison network, not an AI discovery. It illustrates the distinction between proposing a candidate and checking it.

03

The real discovery was lower down.

In 2023, AlphaDev searched for faster small sorting routines at the assembly-instruction level; some were integrated into LLVM’s libc++ sorting implementation. It did not replace the whole field with one universal new sort. The lesson is that an old task can still hide opportunities when you change the representation and the operations available. Read the sourced AI account ↗

TAKE THE HABIT WITH YOU

Before asking “which algorithm?”,
ask “what is the job?”

Define the goal.
What does “ordered” mean here?

Protect the records.
What must stay attached or unchanged?

Use what you know.
Is there existing order or a limited key range?

Name the trade-off.
Time, storage, predictability—or something else?

Sorting is a useful first lesson in structured thinking because you can see the steps and check the result. It is not the whole of critical thinking: choosing a fair ranking or deciding whose needs matter requires judgment beyond arranging keys.

You have reached the end of the guided story. Try the experiments below, or explore the historical atlas.

Try it yourself: the hands-on playgroundAll 16 methods, picture controls, puzzles and your own tiny program. Optional exploration.
AN EXPLORABLE STORY / SORTINGRESEARCH TO 13 SEP 2026

This looks wrong.
It still sorts.

A scientist tried to write a bad sorting algorithm. It worked.
AI found better tiny sorting routines. How was there still room to improve?

Start with a guess. Leave with a way to think.

YOUR FIRST EXPERIMENTNo coding needed

Which way will these numbers end up?

This machine repeatedly compares pairs. Its first whole round puts the largest number at the front. That seems like an odd start for putting the smallest first.

Your prediction:

Make a guess to unlock the machine.

WHAT DID YOU JUST DO?

You asked a better question
than “does it look right?”

Sorting means putting records in a chosen order while keeping every original record. The property we compare is the key.

What can be a key?

A price, a date, a score, or the position number on a picture strip. The whole record travels with its key.

An algorithm is a precise procedure made of steps someone else can follow. Sorting the cards yourself is a start. Explaining which pair to inspect next turns your intuition into a procedure.

TAKE THIS WITH YOU

Examples build confidence.
A reason explains why.

Trying ten inputs does not prove all inputs work. A promise that holds at the start, survives every step and implies the goal at the end is called an invariant.

01 / BE THE ALGORITHM

You already know
the first move.

Your cards are in order. You pick up a 5. Help it find its place using only its left-hand neighbour.

Choose a move. A wrong guess is useful information.

You just used insertion sort’s idea: reuse the order you already have. The processed section stays ordered after each insertion. This adjacent-swap version trades places; another version holds the new card and shifts its neighbours. Source ↗

02 / ONE PICTURE. SIXTEEN PROCEDURES.

The answer is the same.
The journey isn’t.

Every method gets exactly the same shuffled strips. Their numbers tell it where each strip belongs. The computer is reading numbers, not recognising the scene.

The completed illustration: mountains, a rust-coloured sun, a river and a small houseTHE FINISHED PICTURE / ORIGINAL ILLUSTRATION

A visual step is a checkpoint, not a unit of time. Buffered methods appear when all strips are back in the main row; intermediate buffer copies are omitted here. Use “Inspect trace” to examine those copies. Workspace labels describe the sorting procedure, excluding the storage used to animate it.

Before you run: which method do you think will do less work?

What do the counters include?

A comparison tests two keys. Moving a record into one main-array slot counts as one write; a swap counts as two. These counters exclude scratch-buffer writes, digit inspection and bookkeeping. Counting and radix sort can therefore show zero comparisons while still doing work. Playback duration is not execution time.

The picture has eight unique keys. It cannot demonstrate what happens to equal keys. Try the receipt example below for that. The existing lab offers full traces and real device timings for three teaching implementations.

Wait. Each strip already tells us its destination. Is there a shortcut?

Yes. With unique position numbers 1–8, allocate eight output slots and put each strip directly in its numbered slot. That takes one placement per strip plus the output storage. You used extra knowledge about the keys, not a cleverer comparison.

A thought to keep: understand the information available before choosing a famous method.

03 / THERE IS NO SINGLE WINNER

Change the problem.
Change the useful method.

Choose a situation, then make a case for a method. “Better” needs a resource and a constraint.

Choose a method to see the reasoning.

WHAT EXTRA INFORMATION BUYS YOU

One digit is small.
Two passes can do a lot.

For two-digit numbers, first order the units digit. Then order the tens digit, keeping ties in their previous order. This is least-significant-digit radix sorting. Source ↗

21, 13, 12, 22. Predict the result of sorting only by the last digit.

The useful promise changes with the method. In insertion sort, a growing section stays ordered. Here, the digits already processed stay correctly ordered within each new group.

COUNT THE WORK BEFORE YOU TIME IT

Double the task.
How much more work?

Where do n² and n log n come from?

n means the number of records. Comparing every position with every position makes n × n comparisons. Doubling n makes that expression four times larger. A halving strategy has log₂ n levels at powers of two; doing a linear pass per level produces the n log₂ n growth term.

These are illustrative growth functions in abstract work units, not measured runtimes or exact counts for merge sort. O describes an upper bound; Θ describes a tight growth rate. Constants, input structure and the operations counted still matter. Read the analysis ↗

“Average time” needs a population of inputs and an implementation. An almost ordered workload can favour a different method from a shuffled one. The detailed lab below measures actual device times and shows its assumptions.

A TRAP YOU CAN MEET IN A SPREADSHEET

It looks sorted.
Would you trust it?

These are the original expenses: groceries ₹840, train ₹320, notebook ₹180. Only the amount column was sorted. Tap the row whose amount is still correct.

Look at the associations, not just the increasing numbers.

And if two amounts are equal?

Train and lunch both cost ₹320. Their names make them different records.

A stable sort preserves the original order of tied keys. Both arrangements can be sorted by amount; only one preserves this input’s tie order.

In Excel or Sheets, keep the intended records together and choose your sort columns deliberately. A second key can order records tied on the first. Product documentation describes these features, but does not establish which internal sorting algorithm runs. Excel ↗ Sheets ↗

What about YouTube’s “Top comments”?

Newest first uses time as a key. “Top” involves deciding relevance and what is shown. Choosing those criteria is a different problem from computing an order. More likes alone does not establish YouTube’s ranking formula. YouTube’s explanation ↗

04 / THE SECOND SURPRISE

If we know how to sort,
what did AI discover?

Knowing a correct procedure does not tell us whether we can do the same job with fewer costly instructions.

In 2023, AlphaDev searched for small sorting programs at the level of machine instructions. It learned to build candidates that were correct and efficient. Small routines entered LLVM’s C++ standard library. Nature paper ↗

The discovery happened before deployment. A program can use the resulting routine without asking an AI model to sort each list.

This was an improvement to tiny building blocks. It did not invent sorting or remove the general limit on comparison-based sorting.

A TOY PROGRAM SEARCH / NOT AN ALPHADEV REPLAY

Can three fixed comparisons do the job?

For three positions, choose a pair to add an instruction: compare the two and put the smaller on the left. Build a fixed sequence that sorts all six orders of 1, 2, 3.

    Build a candidate, then test it. You can use up to six instructions.

    A hint, then a solution

    Try neighbouring positions in this order: 1 ↔ 2, then 2 ↔ 3, then 1 ↔ 2. The middle comparison places the largest value last; the final one repairs the first pair. This is a classic sorting network, not an AI-discovered routine.

    A DIFFERENT RULE MAKES A DIFFERENT PUZZLE

    You may only flip
    the top of the stack.

    Make the smallest pancake sit on top and the largest on the bottom. Tap a pancake to flip everything from the top through that pancake.

    Five pancakes. One legal kind of move.

    How to think about it

    Find the largest unfinished pancake. Bring it to the top with one flip, then flip the unfinished stack to put it at the bottom. Leave that finished bottom alone and repeat.

    Bill Gates and Christos Papadimitriou studied bounds for prefix-reversal sorting in 1979; they did not invent the original puzzle. Source ↗

    THE PART TO REMEMBER

    The useful skill is
    asking the next question.

    01

    What counts as success?

    Choose the key and direction. A list can be correctly ordered by the wrong criterion.

    02

    What must stay intact?

    Every original record, including duplicates and its associated information.

    03

    Why does this step help?

    Name what remains true, and why the unfinished part gets smaller.

    04

    What costs us most?

    Comparisons, moves, storage, or time? Choose the method for the actual constraints.

    One final test, away from the cards.

    A clinic asks you to “sort appointments better”. What should you establish first?

    Apply the thinking to a new situation.

    Sorting is a clear place to practise precise thinking because the goal can be stated and checked. Choosing a fair priority rule, dealing with uncertainty, or finding a route through a network requires further ideas. Sorting teaches useful habits; it is not the whole subject.

    You came to see whether it sorts.
    Now you know what else to ask.

    Keep exploring: 74 methods, variants and related ideas ↓
    Go deeper: full algorithm traces, measured timings & illustrated technical lessons
    002 / THE LOGIC OF EVERYDAY LIFE13 SEPTEMBER 2026

    A little order.
    A different way
    to think.

    From arranging a hand of cards to an AI discovering code. The surprisingly human story of sorting, and what it teaches us about solving problems.

    SAME EIGHT VALUES. A BETTER QUESTION: HOW?

    You already sort. You might just not call it an algorithm.

    You put the soonest deadline first. You arrange receipts by date. You place a new playing card between two cards already in order. Each time, you choose what matters, then use a procedure to organise the things in front of you.

    Our argument: sorting is a small laboratory for structured thinking. The answer is easy to recognise, so the interesting questions become visible: What must stay true? Why does this step help? Will it finish? What does it cost?

    But “the best introduction to every algorithm” goes too far. Sorting begins with a known objective and an exact answer. Later, we will ask what changes when a product tries to decide what you should care about.

    BEFORE THE COMPUTER SCIENCE

    You used a sort
    before you got here.

    Start with a familiar task. Change its rule. Notice what moves, what stays together, and what information the rule needs.

    CHAPTER 01 / DEFINE SUCCESS

    A sorted list can still
    be the wrong answer.

    01 / 05

    First, choose the rule.

    A key is the property you order by: price, date, name or size. These numbers use smallest first; “best” would need a definition. ↗

    02 / 05

    Order is only half the job.

    Deleting the inconvenient numbers makes this list look ordered. But a true sort must keep every original item, including repeats. ↗

    03 / 05

    Make one small decision.

    A computer can compare two keys, then exchange their records. A method must say which pair to inspect next, without relying on a person seeing the whole answer. ↗

    04 / 05

    Keep something true.

    In insertion sort, the processed prefix remains ordered after each insertion. This promise is an invariant: a fact that connects one step to the next. ↗

    05 / 05

    Know why it stops.

    The processed prefix gains an item each round, and the input is finite. A rule plus an invariant plus progress gives a reason to trust the result; now ask what that progress costs. ↗

    FIG. 0101 / 05
    Scroll or step through

    CHAPTER 02 / COUNT THE WORK

    The same result.
    Very different amounts of work.

    01 / 05

    Almost done is useful information.

    An ordered input needs only a short confirmation in insertion sort. Adaptive algorithms can benefit from structure that is already present. ↗

    02 / 05

    Reverse the input. Change the bill.

    If every new item belongs at the front, an adjacent-swap insertion sort moves it past everything before it. This example needs 1 + 2 + … + 7 = 28 swaps. ↗

    03 / 05

    Break a big task into small ones.

    Merge sort splits the sequence until the pieces are trivial to sort. The teaching example has eight items, so halving reaches singletons in three levels. ↗

    04 / 05

    Combine answers without starting over.

    Merge two ordered runs by comparing their front values and taking the smaller. Each level processes the items again, giving growth proportional to n log n. ↗

    05 / 05

    Growth is not a stopwatch.

    O(n²) and O(n log n) describe how work scales, not seconds. Input, constants and hardware still matter; some methods even change which operations they need. ↗

    FIG. 0201 / 05
    Scroll or step through

    CHAPTER 03 / EXPOSE THE ASSUMPTIONS

    You can beat a limit
    by changing the question.

    01 / 05

    Comparisons buy information.

    Four distinct items have 24 possible orders. A yes/no comparison decision tree needs at least five levels somewhere to distinguish them: four binary answers distinguish at most 16 possibilities. ↗

    02 / 05

    Or use what the keys tell you.

    With small integer keys, counting sort can directly count occurrences. Its O(n + k) work includes the key range k; this is extra information the comparison-only model does not use. ↗

    03 / 05

    One digit at a time.

    LSD radix sort can order the units digit, then the tens digit. Each pass must preserve the order of equal digits so the previous pass keeps doing useful work. ↗

    04 / 05

    Ties carry information too.

    A stable sort preserves the input order of equal keys. If you need a particular tie-breaker in a spreadsheet, specify that second key explicitly instead of assuming undocumented tie behaviour. ↗↗

    05 / 05

    There is more than one resource.

    A sorting network fixes the comparison schedule; independent pairs can run together. Memory use, parallel depth and total work are different costs, which is why history never converged on one winner. ↗

    FIG. 0301 / 05
    Scroll or step through

    CHAPTER 04 / DOUBT, TEST, PROVE

    The rule can look wrong.
    The proof can still be right.

    01 / 05

    “I Can’t Believe It Can Sort”

    In 2021, Stanley Fung described this all-pairs routine after trying to make incorrect sorts. The < sign looks backwards, yet the result is ascending. ↗

    02 / 05

    It starts by doing something odd.

    The first outer pass pulls a global maximum to the first position. Watch the whole pass before judging the direction of the result. ↗

    03 / 05

    Find the stronger promise.

    After outer pass i, the prefix through i is ordered and its last item holds a maximum. At the last pass, that prefix is the entire array; an invariant explains the surprise. ↗

    04 / 05

    AI searched for a better tiny program.

    AlphaDev used reinforcement learning to discover small sorting routines published in 2023 and incorporated into LLVM libc++. It optimised low-level building blocks, not the asymptotic limit for arbitrary lists. ↗

    05 / 05

    Keep asking what “better” means.

    In July 2026, researchers reported linear data moves alongside near-optimal comparisons in an in-place randomised method. The discovery changes a resource tradeoff; it does not make every existing sort obsolete. ↗

    FIG. 0401 / 05
    Scroll or step through

    A PLAIN-LANGUAGE KEY TO THE SYMBOLS

    Count how the work grows.

    n

    How many things?

    If the list holds 1,000 receipts, n is 1,000. The receipt values are a different quantity.

    O(n)

    Roughly one pass.

    Double the items and the growth term doubles. This is a bound on scaling, not a promise of exactly one operation per item.

    O(n log n)

    A few levels of passes.

    At powers of two, log₂ n counts halvings. Doubling the input adds one level as well as doubling each level’s size.

    O(n²)

    Repeatedly cross the list.

    Double n and n² becomes four times as large. Constants and small-input overhead still matter.

    O is an upper-bound notation; Θ describes a tight growth rate. “Average” requires a distribution of inputs, “expected” may average over an algorithm’s random choices, and “worst” covers the hardest allowed input. None is a universal duration in seconds.

    PAUSE & PREDICT

    Does this count as sorting?

    Input: 4, 2, 2, 7. Output: 2, 4, 7.

    Choose an answer, then test it against the contract.

    YOUR TURN / A LABORATORY, NOT A RACE VIDEO

    Change the input.
    Question the method.

    Run real teaching implementations. Step backward, inspect the counters, and look for a reason the algorithm must work.

    Insertion sort

    READY
    Key comparisons0
    Main-array writes0
    Record checks at finishPending

    THE PROMISE TO WATCH

    WHAT THESE COUNTERS MEAN

    One comparison tests two keys. A swap writes two array slots. Buffer writes, digit inspections and loop tests are not counted as key comparisons. Zero comparisons in radix sort does not mean zero work.

    Merge/counter methods temporarily keep records in a scratch buffer. The main-array view alone can show duplicates during copying; the final audit checks the complete result.

    Read the procedure in plain pseudocode

    These are teaching versions, not copies of production library implementations. The implementation details shown in the selector matter.

    “HOW LONG DOES IT TAKE?”

    Measure here.
    Don’t invent an average.

    Compare insertion, merge and quicksort on the same generated values in your browser. Change input size or shape and measure again.

    Mean of seven runs after two warm-ups. Mixed-order inputs draw values from 1–99, so large inputs contain duplicates. Timings include this implementation’s record creation and counters, exclude animation and display, and are not timings for Excel, Sheets or YouTube. Timer precision and browser load affect short runs.

    Run the experiment.
    Measure these implementations on your device.

    A HISTORY OF CHANGING CONSTRAINTS

    Same problem.
    Different worlds.

    Dates below mark a documented milestone, not the birthday of every idea. Explore individual methods in the atlas.

    Make records physical.

    Hollerith’s census equipment combines tabulation with a sorting table. Humans still place the cards into indicated drawers. ↗

    Design reusable procedures.

    Shellsort, published quicksort and heapsort offer different ways to organise work on electronic computers. ↗↗↗

    Make comparisons parallel.

    Batcher networks and then the AKS construction explore how little sequential depth sorting needs. ↗↗

    Let methods cooperate.

    Introsort adds a fallback. Timsort exploits runs. Powersort improves the merge schedule. ↗↗↗

    Revisit what costs most.

    Learned distributions, AI-generated small routines, memory-aware hybrids and minimal-move research pursue different savings. ↗↗↗

    THE SORTING ATLAS / RESEARCHED TO 13 SEP 2026

    74 methods, variants
    and related ideas.

    Foundations, variants, hybrids, special models and a few cautionary jokes. Open a row for the mechanism, story, costs, assumptions and sources.

    What “all sorting algorithms” can and cannot mean

    This is a broad curated atlas, not an exhaustive inventory of every published or unnamed variant. There is no closed registry of all sorting techniques. The 74 entries include algorithm families, named variants, implementation designs and research results; they are not 74 independent inventions.

    Dates identify publication, a documented appearance or adoption as labelled. “Classical” and “origin uncertain” mean no verified invention date is claimed. Original papers, author repositories, official documentation and institutional histories are prioritised. A preprint is labelled research, not independently verified performance.

    Complexities refer to the stated implementation or model. n is the number of items, k the key range, d the number of digits, b the base and w the word width. “Stable” means preserving input order for equal keys. “In-place” conventions vary; see each memory note.

    74 entries
    DOCUMENTED ERAMETHODTHE IDEA
    Classical; origin uncertainInsertion sortFoundationsGrow an ordered prefix by inserting the next item and shifting larger items right.
    THE PROCEDURE

    Grow an ordered prefix by inserting the next item and shifting larger items right.

    WHY USE THIS IDEA?

    A small hand of cards, a short list, or the cleanup inside a larger sorting method.

    THE STORY / CHARACTERISTIC

    Like arranging a hand of cards. Its simplicity survives inside sophisticated library sorts.

    Cost model
    O(n²) worst; O(n) sorted
    Average-case work
    Θ(n²) for uniformly shuffled distinct keys; Θ(n) for ordered input.
    Stable?
    Yes
    Extra memory
    O(1)
    Evidence / role
    Established

    The catch. Excellent for small or nearly ordered inputs; quadratic on reversed input.

    Classical variantBinary insertion sortFoundationsUse binary search inside the ordered prefix, then shift to create the insertion slot.
    THE PROCEDURE

    Use binary search inside the ordered prefix, then shift to create the insertion slot.

    WHY USE THIS IDEA?

    Small arrays whose keys are expensive to compare but whose records are cheap to shift.

    THE STORY / CHARACTERISTIC

    Fewer comparisons need not mean fewer moves.

    Cost model
    O(n log n) comparisons; O(n²) moves
    Average-case work
    Θ(n log n) key comparisons, but Θ(n²) expected shifts on shuffled distinct keys.
    Stable?
    Yes, with rightmost ties
    Extra memory
    O(1)
    Evidence / role
    Variant

    The catch. The array still has to make space; binary search does not make this an O(n log n) time array sort.

    Classical; origin uncertainSelection sortFoundationsScan the unsorted suffix for its minimum, then place it at the boundary.
    THE PROCEDURE

    Scan the unsorted suffix for its minimum, then place it at the boundary.

    WHY USE THIS IDEA?

    A teaching baseline when separating the cost of comparisons from the cost of swaps.

    THE STORY / CHARACTERISTIC

    You can minimise swaps without minimising comparisons.

    Cost model
    Θ(n²) comparisons
    Average-case work
    Θ(n²) comparisons regardless of input order in the standard implementation.
    Stable?
    No, usual swap version
    Extra memory
    O(1)
    Evidence / role
    Established

    The catch. At most n−1 nontrivial swaps, but it rescans even already sorted input.

    Classical; origin uncertainBubble sortFoundationsSwap adjacent inverted pairs; repeat passes until no swap occurs.
    THE PROCEDURE

    Swap adjacent inverted pairs; repeat passes until no swap occurs.

    WHY USE THIS IDEA?

    Teaching local repair and early termination; rarely the first choice for large data.

    THE STORY / CHARACTERISTIC

    A large value can cross the array in one pass; a small value can crawl back slowly.

    Cost model
    O(n²) worst; O(n) with early exit
    Average-case work
    Θ(n²) on uniformly shuffled distinct keys; early exit helps ordered input.
    Stable?
    Yes
    Extra memory
    O(1)
    Evidence / role
    Established

    The catch. Useful for explaining local repair, usually a poor general-purpose implementation.

    Classical variantCocktail shaker sortFoundationsAlternate forward and backward bubble passes.
    THE PROCEDURE

    Alternate forward and backward bubble passes.

    WHY USE THIS IDEA?

    A teaching comparison with bubble sort when small values need to travel left as well as large values right.

    THE STORY / CHARACTERISTIC

    Also called bidirectional bubble sort. The return trip repairs the small-value crawling problem.

    Cost model
    O(n²) worst
    Average-case work
    Quadratic on typical random permutations; favourable inputs can be cheaper.
    Stable?
    Yes
    Extra memory
    O(1)
    Evidence / role
    Variant

    The catch. Symmetry improves some inputs without changing the quadratic worst case.

    1980 precursor; 1991 accountComb sortFoundationsCompare values across shrinking gaps, ending with gap-one passes until no swaps occur.
    THE PROCEDURE

    Compare values across shrinking gaps, ending with gap-one passes until no swaps occur.

    WHY USE THIS IDEA?

    A study of whether moving distant inversions early reduces later adjacent swaps on the same input.

    THE STORY / CHARACTERISTIC

    Dobosiewicz described a precursor; Box and Lacey published their account in Byte.

    Cost model
    O(n²) worst
    Average-case work
    Depends on input distribution and the shrink policy; the displayed quadratic worst-case bound is not an average.
    Stable?
    No
    Extra memory
    O(1)
    Evidence / role
    Established

    The catch. Unlike Shellsort, each gap gets a bubbling pass rather than a complete insertion sort.

    2000 precursor; 2003 naming evidenceGnome sortFoundationsMove forward if neighbours are ordered; otherwise swap and step backward.
    THE PROCEDURE

    Move forward if neighbours are ordered; otherwise swap and step backward.

    WHY USE THIS IDEA?

    A compact way to express insertion-like repair using a cursor that walks forward and backward.

    THE STORY / CHARACTERISTIC

    Sarbazi-Azad called its precursor Stupid Sort. Grune used the garden-gnome name.

    Cost model
    O(n²) worst; O(n) sorted
    Average-case work
    Θ(n²) on random permutations; linear on already ordered input.
    Stable?
    Yes
    Extra memory
    O(1)
    Evidence / role
    Established

    The catch. An insertion-sort idea expressed as a walking cursor; naming history is not a single clean invention date.

    1959 publicationShellsortFoundationsInsertion-sort interleaved subsequences, shrinking the gap until it reaches one.
    THE PROCEDURE

    Insertion-sort interleaved subsequences, shrinking the gap until it reaches one.

    WHY USE THIS IDEA?

    An array sort with constant auxiliary storage, when the selected gap sequence suits the workload.

    THE STORY / CHARACTERISTIC

    Named for Donald Shell, not a shell-shaped data structure.

    Cost model
    Depends on gap sequence
    Average-case work
    Depends on the gap sequence as well as the distribution of inputs.
    Stable?
    No
    Extra memory
    O(1)
    Evidence / role
    Established

    The catch. Different gaps give different bounds. A single universal O(n log n) label would be misleading.

    1940s electronic-computing eraMerge sortFoundationsSort two parts and repeatedly take the smaller front item to merge them.
    THE PROCEDURE

    Sort two parts and repeatedly take the smaller front item to merge them.

    WHY USE THIS IDEA?

    Combining already ordered runs, such as batches of dated records. External variants stream them from storage.

    THE STORY / CHARACTERISTIC

    Early electronic-computing discussions by von Neumann already treated sorting as a fundamental workload.

    Cost model
    O(n log n)
    Average-case work
    Θ(n log n) for standard merge sort; run-aware variants can do less work.
    Stable?
    Yes, with left-first ties
    Extra memory
    O(n), usual arrays
    Evidence / role
    Established

    The catch. Predictable growth; the usual array implementation buys easy merging with extra memory.

    Classical merge variantBottom-up merge sortFoundationsMerge runs of length one, then two, then four, continuing iteratively.
    THE PROCEDURE

    Merge runs of length one, then two, then four, continuing iteratively.

    WHY USE THIS IDEA?

    A merge-based implementation that should use iterative passes rather than recursive calls.

    THE STORY / CHARACTERISTIC

    Recursion is a way to describe divide-and-conquer, not a requirement for implementing it.

    Cost model
    O(n log n)
    Average-case work
    Θ(n log n) for the conventional fixed merge schedule.
    Stable?
    Yes
    Extra memory
    O(n), usual arrays
    Evidence / role
    Variant

    The catch. The merge schedule is fixed and normally ignores existing long runs.

    Classical adaptive familyNatural merge sortFoundationsRecognise already ordered runs and merge them rather than starting from singletons.
    THE PROCEDURE

    Recognise already ordered runs and merge them rather than starting from singletons.

    WHY USE THIS IDEA?

    A collection already organised into ascending runs, where recognising those runs avoids rebuilding all order.

    THE STORY / CHARACTERISTIC

    Real data often brings some of its own order.

    Cost model
    O(n log r) with pairwise merge passes; O(n) for one run
    Average-case work
    Depends on the number and lengths of runs and the merge schedule.
    Stable?
    Yes, with careful ties
    Extra memory
    O(n), common implementation
    Evidence / role
    Variant

    The catch. Run detection and the order of merges determine how effectively that structure is used.

    1959 development; 1961 publicationQuicksortFoundationsChoose a pivot, partition around it, then sort the resulting regions.
    THE PROCEDURE

    Choose a pivot, partition around it, then sort the resulting regions.

    WHY USE THIS IDEA?

    General-purpose in-memory sorting when fast partitions are useful; robust libraries add safeguards.

    THE STORY / CHARACTERISTIC

    Hoare developed the idea while studying in Moscow and thinking about Russian-to-English translation.

    Cost model
    Expected O(n log n); O(n²) worst
    Average-case work
    Expected Θ(n log n) with random pivots or uniformly shuffled distinct input.
    Stable?
    No, usual partition
    Extra memory
    O(log n) typical stack; O(n) naive worst
    Evidence / role
    Established

    The catch. Bad pivot splits can repeatedly leave almost the whole problem unsolved.

    Classical duplicate-aware variantThree-way quicksortFoundationsPartition into values smaller than, equal to, and larger than the pivot.
    THE PROCEDURE

    Partition into values smaller than, equal to, and larger than the pivot.

    WHY USE THIS IDEA?

    A list containing many repeated keys, where equal values can be removed from further recursive sorting.

    THE STORY / CHARACTERISTIC

    Equal values become a finished middle region instead of being needlessly sorted again.

    Cost model
    Expected O(n log n); O(n²) worst
    Average-case work
    Expected O(n log n), often less with many equal keys; pivot assumptions matter.
    Stable?
    No
    Extra memory
    Stack-dependent
    Evidence / role
    Variant

    The catch. Especially instructive on many duplicates; pivot quality still matters.

    2009 OpenJDK contributionDual-pivot quicksortHybridsTwo pivots create three regions that are sorted recursively.
    THE PROCEDURE

    Two pivots create three regions that are sorted recursively.

    WHY USE THIS IDEA?

    An implementation study of partitioning into three regions and the memory scans those partitions require.

    THE STORY / CHARACTERISTIC

    Yaroslavskiy’s variant entered Java’s primitive-array sorting implementation.

    Cost model
    O(n²) for basic form; hybrids differ
    Average-case work
    Depends on pivot selection, duplicates and the surrounding hybrid implementation.
    Stable?
    No
    Extra memory
    Stack-dependent
    Evidence / role
    Established

    The catch. Two pivots are not automatically better: partition costs, memory scans and safeguards matter.

    1964 publicationHeapsortFoundationsBuild a max-heap, move its root to the end, then repair the smaller heap.
    THE PROCEDURE

    Build a max-heap, move its root to the end, then repair the smaller heap.

    WHY USE THIS IDEA?

    A bounded worst case with little workspace, or a fallback when quicksort partitions go badly.

    THE STORY / CHARACTERISTIC

    A priority queue becomes a full sorting procedure when you repeatedly remove its winner.

    Cost model
    O(n log n) worst
    Average-case work
    O(n log n); the worst-case guarantee is its main attraction, not one measured average.
    Stable?
    No
    Extra memory
    O(1), iterative array form
    Evidence / role
    Established

    The catch. Reliable worst case and little extra storage; heap navigation has different locality from sequential merging.

    1981 manuscript; 1982 journalSmoothsortFoundationsUse a forest of Leonardo heaps to retain useful order while selecting maxima.
    THE PROCEDURE

    Use a forest of Leonardo heaps to retain useful order while selecting maxima.

    WHY USE THIS IDEA?

    A memory-constrained setting where adaptation to existing order is worth more involved heap bookkeeping.

    THE STORY / CHARACTERISTIC

    Dijkstra designed a heapsort relative that transitions smoothly toward linear work on ordered data.

    Cost model
    O(n log n) worst; O(n) best
    Average-case work
    Depends on pre-existing order; its best and worst bounds describe different ends of that range.
    Stable?
    No
    Extra memory
    O(1) words
    Evidence / role
    Established

    The catch. The bookkeeping is considerably more intricate than ordinary heapsort.

    Classical data-structure methodTree sortFoundationsInsert values into a search tree and read them in order.
    THE PROCEDURE

    Insert values into a search tree and read them in order.

    WHY USE THIS IDEA?

    Records being inserted into an ordered search structure that will later be traversed in key order.

    THE STORY / CHARACTERISTIC

    It shifts the sorting problem into maintaining an ordered data structure.

    Cost model
    O(n log n) balanced; O(n²) unbalanced
    Average-case work
    Depends on the tree’s balancing policy and insertion order.
    Stable?
    Implementation-dependent
    Extra memory
    O(n)
    Evidence / role
    Established

    The catch. A plain unbalanced tree can degenerate into a chain. Duplicate storage must preserve all items.

    Documented by 1962Tournament sortFoundationsCompare pairs up a tournament tree; emit the winner and replay its path.
    THE PROCEDURE

    Compare pairs up a tournament tree; emit the winner and replay its path.

    WHY USE THIS IDEA?

    Repeatedly selecting the next record while retaining comparisons from earlier rounds in a tournament tree.

    THE STORY / CHARACTERISTIC

    Only the matches affected by removing a winner need to be played again.

    Cost model
    O(n log n)
    Average-case work
    O(n log n) is also an upper bound on average work in the usual tournament-tree model.
    Stable?
    Implementation-dependent
    Extra memory
    O(n), tournament tree
    Evidence / role
    Established

    The catch. The extra tree records reusable comparison results instead of starting each minimum scan anew.

    1990 Haddon paper; variants differCycle sortFoundationsFind destinations and rotate items around permutation cycles.
    THE PROCEDURE

    Find destinations and rotate items around permutation cycles.

    WHY USE THIS IDEA?

    A situation where overwriting records is expensive and reducing writes is worth extra comparisons.

    THE STORY / CHARACTERISTIC

    Haddon studied cycles under conditions allowing linear sorting; the common teaching variant spends comparisons finding ranks.

    Cost model
    O(n²) for comparison-ranked variant
    Average-case work
    Depends on how destination ranks are obtained; the common comparison-ranked variant spends quadratic work finding them.
    Stable?
    No
    Extra memory
    O(1), common cycle variant
    Evidence / role
    Established

    The catch. Minimal writes and minimal comparisons are different goals. The original paper’s linear claim has assumptions.

    Classical; 1999 surveyPatience sortingFoundationsDeal values onto ordered piles, then merge their top values.
    THE PROCEDURE

    Deal values onto ordered piles, then merge their top values.

    WHY USE THIS IDEA?

    Reasoning about card piles and the length of an increasing subsequence, with a merge stage for full sorting.

    THE STORY / CHARACTERISTIC

    A card-game viewpoint connects sorting to the longest increasing subsequence.

    Cost model
    O(n log n) with efficient pile search/merge
    Average-case work
    Depends on the pile structure and the search/extraction implementation; the efficient version has O(n log n) total work.
    Stable?
    Implementation-dependent
    Extra memory
    O(n)
    Evidence / role
    Established

    The catch. Building piles alone does not emit a globally sorted list; extraction or merging still matters.

    Documented in 1997 discussionStrand sortFoundationsPull an increasing strand out of the input, merge it into the output, and repeat.
    THE PROCEDURE

    Pull an increasing strand out of the input, merge it into the output, and repeat.

    WHY USE THIS IDEA?

    A linked-list exercise in removing increasing subsequences and merging them into an accumulated output.

    THE STORY / CHARACTERISTIC

    A linked list lets the procedure remove a strand without shifting an entire array.

    Cost model
    O(n²) worst
    Average-case work
    Depends on how long the extracted strands are and how they are merged.
    Stable?
    Can be stable
    Extra memory
    O(n), list representation
    Evidence / role
    Established

    The catch. Ordered inputs are friendly; many short strands can force repeated scanning and merging.

    1959 publicationFord–Johnson / merge-insertionFoundationsPair elements, order the larger partners, then insert the smaller ones in a carefully chosen schedule.
    THE PROCEDURE

    Pair elements, order the larger partners, then insert the smaller ones in a carefully chosen schedule.

    WHY USE THIS IDEA?

    Small inputs whose comparisons are expensive enough to justify a carefully scheduled insertion process.

    THE STORY / CHARACTERISTIC

    A classic attempt to squeeze out comparisons, with special relevance to small input sizes.

    Cost model
    O(n log n) comparisons
    Average-case work
    The classic objective is worst-case comparison count; average comparisons require an input model.
    Stable?
    Usually no
    Extra memory
    O(n), common implementations
    Evidence / role
    Established

    The catch. Comparison counts are the objective; bookkeeping can outweigh savings in elapsed time.

    Classical integer-key methodCounting sortDistributionCount occurrences, compute output positions and place each record into its slot.
    THE PROCEDURE

    Count occurrences, compute output positions and place each record into its slot.

    WHY USE THIS IDEA?

    Dense integer categories such as a bounded score range, if the count array fits comfortably in memory.

    THE STORY / CHARACTERISTIC

    Knowing the key universe substitutes direct addressing for pairwise comparison.

    Cost model
    O(n + k), k key range
    Average-case work
    Θ(n + k) in the standard dense-count implementation; k is the key range.
    Stable?
    Yes, output-buffer form
    Extra memory
    O(n + k)
    Evidence / role
    Established

    The catch. A huge sparse range makes the count array expensive, even if there are few input items.

    Punched-card lineageLSD radix sortDistributionSort by the least significant digit, then by each more significant digit using stable passes.
    THE PROCEDURE

    Sort by the least significant digit, then by each more significant digit using stable passes.

    WHY USE THIS IDEA?

    Digit-structured identifiers. Punched-card processing provides a historical physical analogue.

    THE STORY / CHARACTERISTIC

    Physical card sorting helps explain why digit-by-digit ordering predates electronic programs.

    Cost model
    O(d(n + b)), d digits, base b
    Average-case work
    Θ(d(n + b)) for fixed-width keys and counting-based digit passes.
    Stable?
    Yes, stable passes
    Extra memory
    O(n + b)
    Evidence / role
    Established

    The catch. It relies on key representation and stability. Digit width and sign handling are part of the algorithm.

    Classical radix variantMSD radix sortDistributionGroup by the most significant digit and recursively refine each group.
    THE PROCEDURE

    Group by the most significant digit and recursively refine each group.

    WHY USE THIS IDEA?

    Strings or identifiers sharing prefixes, where later characters matter only inside tied groups.

    THE STORY / CHARACTERISTIC

    A shared prefix lets whole strings travel together before their next character matters.

    Cost model
    Key-length, radix and recursive-bucket dependent
    Average-case work
    Depends on shared prefixes, key lengths, radix and how each recursive bucket is processed.
    Stable?
    Implementation-dependent
    Extra memory
    Implementation-dependent
    Evidence / role
    Established

    The catch. Short strings need an end marker; empty and highly uneven buckets require care.

    Classical distribution familyBucket sortDistributionDistribute values into ordered ranges, sort within each range and concatenate.
    THE PROCEDURE

    Distribute values into ordered ranges, sort within each range and concatenate.

    WHY USE THIS IDEA?

    Numeric keys with a known useful distribution, so ordered ranges can divide the work into small local sorts.

    THE STORY / CHARACTERISTIC

    The shape of the data can be useful information.

    Cost model
    Expected O(n + k) with suitable distribution; O(n²) possible
    Average-case work
    Expected linear work needs an appropriate distribution and bucket count; a crowded bucket changes the cost.
    Stable?
    Implementation-dependent
    Extra memory
    O(n + k)
    Evidence / role
    Established

    The catch. The usual linear expectation assumes balanced buckets and cheap internal work; one crowded bucket changes everything.

    Classical distribution variantHistogram sortDistributionCount bucket sizes first so each bucket receives an exact output range.
    THE PROCEDURE

    Count bucket sizes first so each bucket receives an exact output range.

    WHY USE THIS IDEA?

    A distribution pipeline that must know each bucket’s size before assigning contiguous output space.

    THE STORY / CHARACTERISTIC

    Sizing the destinations before moving records avoids guessing capacity.

    Cost model
    Distribution and local-sort dependent
    Average-case work
    Depends on bucket occupancy and the method used to finish each bucket.
    Stable?
    Implementation-dependent
    Extra memory
    Bucket-count dependent
    Evidence / role
    Variant

    The catch. Histogram construction is only one stage; items within a bucket may still need sorting.

    Classical direct-address methodPigeonhole sortDistributionAllocate a hole for each possible key and collect records in key order.
    THE PROCEDURE

    Allocate a hole for each possible key and collect records in key order.

    WHY USE THIS IDEA?

    Records whose integer keys occupy a small range and can be collected into one container per possible key.

    THE STORY / CHARACTERISTIC

    It makes the range of possible values visible as a physical storage cost.

    Cost model
    O(n + k)
    Average-case work
    The usual scan-and-collect procedure costs O(n + k) for all inputs in the stated key range.
    Stable?
    Can be stable
    Extra memory
    O(n + k) for records
    Evidence / role
    Variant

    The catch. A counting-style technique; storing whole records in holes differs from storing only frequencies.

    1990s string-sorting literatureAmerican flag sortDistributionCount digit buckets and use cyclic moves to permute items into contiguous bucket regions.
    THE PROCEDURE

    Count digit buckets and use cyclic moves to permute items into contiguous bucket regions.

    WHY USE THIS IDEA?

    Digit-based grouping where a full second record array is undesirable and stability is not required.

    THE STORY / CHARACTERISTIC

    An in-place relative of radix sorting, named by analogy with multi-colour partitioning.

    Cost model
    Key-length dependent
    Average-case work
    Depends on key lengths, radix and the distribution of prefixes.
    Stable?
    No, usual in-place form
    Extra memory
    Bucket counters plus stack
    Evidence / role
    Established

    The catch. Saving a full output array makes the permutation logic harder; stability is normally lost.

    1997 conference; 1998 magazineFlashsortDistributionEstimate value classes, permute into classes, then clean up the local order.
    THE PROCEDURE

    Estimate value classes, permute into classes, then clean up the local order.

    WHY USE THIS IDEA?

    Numeric data where interpolation yields useful classes and the subsequent cleanup stays inexpensive.

    THE STORY / CHARACTERISTIC

    Neubert published the method at euroFORTH and in Dr. Dobb’s Journal.

    Cost model
    O(n) under suitable distributions; O(n²) possible
    Average-case work
    Its favourable distribution assumptions govern class balance and cleanup work.
    Stable?
    No
    Extra memory
    O(m), m classes
    Evidence / role
    Established

    The catch. Interpolation needs useful value ranges; skew and the cleanup method determine actual performance.

    2002 paperSpreadsortDistributionCombine radix-style distribution with comparison sorting for appropriate subproblems.
    THE PROCEDURE

    Combine radix-style distribution with comparison sorting for appropriate subproblems.

    WHY USE THIS IDEA?

    Numeric or string keys for which radix partitioning can cooperate with comparison-sort fallbacks.

    THE STORY / CHARACTERISTIC

    Steven Ross’ work became part of Boost.Sort.

    Cost model
    Key-width and hybrid dependent
    Average-case work
    Depends on the key representation and the hybrid’s choice between distribution and comparisons.
    Stable?
    No
    Extra memory
    Variant-dependent
    Evidence / role
    Established

    The catch. Numeric representation, range and fallback thresholds matter; the name is not a guarantee of beating every comparison sort.

    1996 draft; 1997 publicationIntrosortHybridsBegin with quicksort; switch to heapsort if recursion grows too deep.
    THE PROCEDURE

    Begin with quicksort; switch to heapsort if recursion grows too deep.

    WHY USE THIS IDEA?

    General-purpose library sorting that needs both quicksort-like speed and worst-case protection.

    THE STORY / CHARACTERISTIC

    Musser turned an algorithm’s own behaviour into a signal to change strategy.

    Cost model
    O(n log n) worst
    Average-case work
    Input and pivot strategy affect typical work; the O(n log n) worst bound also bounds average work.
    Stable?
    No
    Extra memory
    O(log n) stack
    Evidence / role
    Established

    The catch. It retains quicksort’s practical appeal while placing a bound on pathological partitions.

    2002 Python introductionTimsortHybridsFind natural runs, extend short ones and merge while respecting a scheduling policy.
    THE PROCEDURE

    Find natural runs, extend short ones and merge while respecting a scheduling policy.

    WHY USE THIS IDEA?

    Data arriving as several already ordered runs, such as concatenated sorted batches.

    THE STORY / CHARACTERISTIC

    Tim Peters’ design treats pre-existing order as a resource.

    Cost model
    O(n log n) worst; O(n) ordered
    Average-case work
    Depends on existing run lengths, repeated keys and the merge policy.
    Stable?
    Yes
    Extra memory
    O(n) worst
    Evidence / role
    Established

    The catch. The original merge policy and current CPython’s Powersort policy should not be conflated.

    2018 publicationPowersortHybridsChoose a nearly optimal merge tree from the positions and lengths of adjacent runs.
    THE PROCEDURE

    Choose a nearly optimal merge tree from the positions and lengths of adjacent runs.

    WHY USE THIS IDEA?

    Stable library sorting that should preserve and efficiently combine existing runs.

    THE STORY / CHARACTERISTIC

    Munro and Wild’s policy is documented in CPython’s list-sort implementation.

    Cost model
    O(n log n) worst; adapts to runs
    Average-case work
    Depends on the lengths of detected runs; the merge schedule is designed to use that structure.
    Stable?
    Yes
    Extra memory
    O(n), buffered merge
    Evidence / role
    Established

    The catch. It improves how runs are combined, not the definition of a comparison or a universal CPU speed limit.

    2018 publicationPeeksortHybridsPeek around the middle to find runs and recursively organise their merges.
    THE PROCEDURE

    Peek around the middle to find runs and recursively organise their merges.

    WHY USE THIS IDEA?

    A run-aware stable sort whose merge schedule is constructed recursively around runs near a midpoint.

    THE STORY / CHARACTERISTIC

    Introduced alongside Powersort as another way to use existing runs well.

    Cost model
    O(n log n) worst; adapts to runs
    Average-case work
    Depends on the run-length structure discovered around recursive midpoints.
    Stable?
    Yes
    Extra memory
    O(n), buffered merge
    Evidence / role
    Established

    The catch. Similar objective, different merge-tree construction. “Adaptive” needs a specified measure of order.

    2022 preprintMultiway PowersortHybridsExtend run-aware merge scheduling to combine more than two runs at a time.
    THE PROCEDURE

    Extend run-aware merge scheduling to combine more than two runs at a time.

    WHY USE THIS IDEA?

    An investigation of merging several existing runs together to reduce data transfers across merge levels.

    THE STORY / CHARACTERISTIC

    The research targets data transfers as well as comparisons.

    Cost model
    O(n log n) work, fixed merge arity
    Average-case work
    Depends on run lengths and merge arity; the fixed-arity worst bound also bounds average work.
    Stable?
    Yes
    Extra memory
    O(n), buffered implementation
    Evidence / role
    Research

    The catch. Results for a four-way implementation describe tested workloads, not a universal multiplier.

    2010s implementationGrailSortHybridsUse keys inside the array as workspace for block merging.
    THE PROCEDURE

    Use keys inside the array as workspace for block merging.

    WHY USE THIS IDEA?

    Stable array sorting when an external record buffer is unavailable and internal block management is acceptable.

    THE STORY / CHARACTERISTIC

    Andrey Astrelin’s implementation pursues stability and constant external memory together.

    Cost model
    O(n log n) worst
    Average-case work
    Input structure and internal buffer availability affect work within the stated worst-case bound.
    Stable?
    Yes
    Extra memory
    O(1) without external buffer
    Evidence / role
    Established

    The catch. Internal buffers and duplicate handling make the implementation more complex than textbook merge sort.

    2010s implementationWikiSortHybridsMerge blocks using a small internal working area rather than a full second array.
    THE PROCEDURE

    Merge blocks using a small internal working area rather than a full second array.

    WHY USE THIS IDEA?

    A stable block-merge implementation for exploring the cost of replacing large buffers with rotations and searches.

    THE STORY / CHARACTERISTIC

    Mike Wikström’s implementation demonstrates a practical stable block-sort approach.

    Cost model
    O(n log n) worst
    Average-case work
    Rotations, searches, duplicates and optional caching affect work within its worst-case bound.
    Stable?
    Yes
    Extra memory
    O(1) external workspace
    Evidence / role
    Established

    The catch. Constant extra space is not free: rotations, searches and block bookkeeping still cost work.

    2010s implementationPattern-defeating quicksortHybridsDetect bad partitions and useful order, disturb patterns and fall back when necessary.
    THE PROCEDURE

    Detect bad partitions and useful order, disturb patterns and fall back when necessary.

    WHY USE THIS IDEA?

    General-purpose unstable sorting that should recognise or disrupt patterns leading to bad partitions.

    THE STORY / CHARACTERISTIC

    Orson Peters’ pdqsort explicitly fights inputs that repeatedly fool pivot selection.

    Cost model
    O(n log n) worst
    Average-case work
    Typical work depends on detected patterns and duplicates; safeguards provide the stated worst bound.
    Stable?
    No
    Extra memory
    O(log n) stack
    Evidence / role
    Established

    The catch. Some branchless benefits depend on cheap comparisons and the type being sorted.

    2016 publicationBlockQuicksortHybridsRecord partition decisions in blocks before moving the misplaced elements.
    THE PROCEDURE

    Record partition decisions in blocks before moving the misplaced elements.

    WHY USE THIS IDEA?

    A processor-sensitive implementation where reducing unpredictable branches can justify partition buffers.

    THE STORY / CHARACTERISTIC

    Edelkamp and Weiss target branch mispredictions, a cost hidden by a simple comparison count.

    Cost model
    O(n log n) expected; safeguard-dependent worst
    Average-case work
    Expected bounds depend on pivot assumptions; processor effects are separate from asymptotic work.
    Stable?
    No
    Extra memory
    Block buffers plus stack
    Evidence / role
    Established

    The catch. Same broad quicksort idea, different interaction with a modern processor.

    2020s implementationQuadsortHybridsBuild small ordered groups and use a four-way merging strategy.
    THE PROCEDURE

    Build small ordered groups and use a four-way merging strategy.

    WHY USE THIS IDEA?

    A stable merge design whose four-way merge organisation can be evaluated against ordinary two-way merging.

    THE STORY / CHARACTERISTIC

    Igor van den Hoven’s implementation emphasises predictable comparison and movement patterns.

    Cost model
    O(n log n) worst
    Average-case work
    Depends on input structure and merge behaviour; use its implementation-specific measurements for elapsed time.
    Stable?
    Yes
    Extra memory
    O(n), default buffer
    Evidence / role
    Established

    The catch. Repository benchmarks are author experiments; speed depends on data types, compiler and hardware.

    2020s implementationFluxsortHybridsUse adaptive analysis and stable partitioning with merging machinery.
    THE PROCEDURE

    Use adaptive analysis and stable partitioning with merging machinery.

    WHY USE THIS IDEA?

    Stable sorting where a record buffer is available and adaptive partitioning can cooperate with merging.

    THE STORY / CHARACTERISTIC

    A stable quicksort/mergesort hybrid from van den Hoven.

    Cost model
    O(n log n) worst, documented hybrid
    Average-case work
    Depends on how analysis divides work between stable partitioning and merging.
    Stable?
    Yes
    Extra memory
    O(n), default buffer
    Evidence / role
    Established

    The catch. This is a concrete engineered combination, not proof that either parent family has become obsolete.

    2020s implementationCrumsortHybridsPursue the partitioning approach with limited workspace and without stability.
    THE PROCEDURE

    Pursue the partitioning approach with limited workspace and without stability.

    WHY USE THIS IDEA?

    An unstable partitioning design when limiting workspace is more important than preserving equal-key order.

    THE STORY / CHARACTERISTIC

    Related to Fluxsort, with a different memory and stability tradeoff.

    Cost model
    O(n log n) worst, documented hybrid
    Average-case work
    Depends on partition balance and which adaptive or fallback paths are taken.
    Stable?
    No
    Extra memory
    O(log n), bounded partition machinery
    Evidence / role
    Established

    The catch. Use the implementation’s own guarantees and benchmarks rather than assuming a sibling has identical properties.

    2023 public implementationGlidesortHybridsCombine adaptive merging with stable quicksort and delayed merge decisions.
    THE PROCEDURE

    Combine adaptive merging with stable quicksort and delayed merge decisions.

    WHY USE THIS IDEA?

    Stable sorting of data that may offer both useful runs and repeated keys for a hybrid to exploit.

    THE STORY / CHARACTERISTIC

    Peters’ implementation draws on both run structure and duplicate-aware partitioning.

    Cost model
    O(n log n) worst
    Average-case work
    Depends on useful runs, repeated keys and the interaction between partitioning and merging.
    Stable?
    Yes
    Extra memory
    O(n) worst
    Evidence / role
    Established

    The catch. Its practical behaviour depends on more than a single textbook recurrence.

    2024 Rust adoptionDriftsortHybridsCombine stable quicksort with merging and detection of useful existing order.
    THE PROCEDURE

    Combine stable quicksort with merging and detection of useful existing order.

    WHY USE THIS IDEA?

    The stable slice-sorting role described in Rust’s 1.81 release, where equal-key order must be preserved.

    THE STORY / CHARACTERISTIC

    Rust 1.81 adopted driftsort for stable slice sorting.

    Cost model
    O(n log n) worst
    Average-case work
    Depends on input order, repeated keys and the chosen small-input or hybrid path.
    Stable?
    Yes
    Extra memory
    O(n) worst
    Evidence / role
    Established

    The catch. An adoption date, not a claim that the entire design was invented on release day.

    2024 Rust adoptionIpnsortHybridsCombine quicksort’s fast partitions with safeguards and specialised small-input handling.
    THE PROCEDURE

    Combine quicksort’s fast partitions with safeguards and specialised small-input handling.

    WHY USE THIS IDEA?

    The unstable slice-sorting role described in Rust’s 1.81 release, allowing equal-key order to change.

    THE STORY / CHARACTERISTIC

    Rust 1.81 adopted ipnsort for unstable slice sorting.

    Cost model
    O(n log n) worst
    Average-case work
    Depends on duplicates and partition behaviour; the library’s safeguards bound adverse cases.
    Stable?
    No
    Extra memory
    O(log n) stack
    Evidence / role
    Established

    The catch. Stable and unstable library APIs promise different behaviour for equal keys.

    1968 Batcher publicationBitonic sortParallel & externalBuild sequences rising then falling, then compare across distances to merge them.
    THE PROCEDURE

    Build sequences rising then falling, then compare across distances to merge them.

    WHY USE THIS IDEA?

    A fixed comparison schedule suited to studying parallel rounds or hardware-like comparator organisation.

    THE STORY / CHARACTERISTIC

    A fixed wiring diagram can run many independent comparisons at once.

    Cost model
    O(n log² n) comparators; O(log² n) depth
    Average-case work
    The standard network’s comparison count is fixed by input size, independent of input order.
    Stable?
    No
    Extra memory
    Network/implementation-dependent
    Evidence / role
    Established

    The catch. Depth measures parallel stages, not the total work of all comparators.

    1968 Batcher publicationOdd-even merge networkParallel & externalRecursively merge odd and even positions, then repair neighbouring outputs.
    THE PROCEDURE

    Recursively merge odd and even positions, then repair neighbouring outputs.

    WHY USE THIS IDEA?

    A comparison network that should use a fixed recursive merging schedule, independent of observed key values.

    THE STORY / CHARACTERISTIC

    A second classic Batcher construction with a predetermined comparison schedule.

    Cost model
    O(n log² n) comparators; O(log² n) depth
    Average-case work
    The fixed network performs the same comparator schedule for every allowed input of a given size.
    Stable?
    No, usual network
    Extra memory
    Network-dependent
    Evidence / role
    Established

    The catch. It is different from the adjacent odd-even transposition algorithm.

    Classical parallel variantOdd-even transposition sortParallel & externalAlternate disjoint pairs (0,1),(2,3) and (1,2),(3,4).
    THE PROCEDURE

    Alternate disjoint pairs (0,1),(2,3) and (1,2),(3,4).

    WHY USE THIS IDEA?

    A nearest-neighbour model where disjoint adjacent comparisons can happen in the same round.

    THE STORY / CHARACTERISTIC

    Bubble-like local movement arranged so independent neighbours can work simultaneously.

    Cost model
    O(n²) work; O(n) parallel stages
    Average-case work
    A fixed-round network ignores input order; an early-exit sequential variant can do less work.
    Stable?
    Yes, strict adjacent swaps
    Extra memory
    O(1) sequential extra space
    Evidence / role
    Established

    The catch. More processors reduce elapsed stages but do not erase total quadratic work.

    1983 theoretical constructionAKS sorting networkParallel & externalUse expander-based constructions to obtain an asymptotically shallow sorting network.
    THE PROCEDURE

    Use expander-based constructions to obtain an asymptotically shallow sorting network.

    WHY USE THIS IDEA?

    Understanding the theoretical possibility of logarithmic parallel depth, rather than choosing a simple practical sort.

    THE STORY / CHARACTERISTIC

    Ajtai, Komlós and Szemerédi showed that logarithmic-depth sorting networks exist.

    Cost model
    O(n log n) size; O(log n) depth
    Average-case work
    Network size and depth depend on n, not on a probability distribution of input order.
    Stable?
    Not generally
    Extra memory
    Circuit-dependent
    Evidence / role
    Established

    The catch. An asymptotic existence result does not imply an attractive small-input implementation.

    Classical parallel familySamplesortParallel & externalSample splitter keys, distribute values into ordered buckets, then sort each bucket.
    THE PROCEDURE

    Sample splitter keys, distribute values into ordered buckets, then sort each bucket.

    WHY USE THIS IDEA?

    Partitioning work between processors using sampled boundaries, provided buckets remain sufficiently balanced.

    THE STORY / CHARACTERISTIC

    Once bucket boundaries are correct, workers can sort their regions independently.

    Cost model
    Expected O(n log n); balance-dependent
    Average-case work
    The expected bound depends on sampling and sufficiently balanced bucket occupancy.
    Stable?
    Usually no
    Extra memory
    Implementation-dependent
    Evidence / role
    Established

    The catch. Sampling, skew and duplicate treatment determine whether work is balanced.

    2017 lineage; 2020 extended paperIPS⁴oParallel & externalUse in-place block distribution and branchless splitter trees for parallel samplesort.
    THE PROCEDURE

    Use in-place block distribution and branchless splitter trees for parallel samplesort.

    WHY USE THIS IDEA?

    Parallel in-place engineering where block buffers, locality and balancing work across threads matter.

    THE STORY / CHARACTERISTIC

    Axtmann and colleagues make memory locality and load balancing central design concerns.

    Cost model
    Expected O(n log n) work
    Average-case work
    Expected work depends on its sampling model; actual throughput also depends on processor and memory behaviour.
    Stable?
    No
    Extra memory
    Per-thread/block buffers
    Evidence / role
    Established

    The catch. “In-place” in parallel engineering can still include bounded buffers per worker.

    Classical storage familyExternal merge sortParallel & externalSort chunks that fit in memory, write ordered runs, then stream a multiway merge.
    THE PROCEDURE

    Sort chunks that fit in memory, write ordered runs, then stream a multiway merge.

    WHY USE THIS IDEA?

    A file or database export too large for RAM, where sequential reads and writes are valuable.

    THE STORY / CHARACTERISTIC

    When data exceeds RAM, transfers to storage become part of the algorithm’s cost.

    Cost model
    I/O-dependent; O(n log n) comparison work
    Average-case work
    Depends on initial runs, RAM, fan-in and external transfers, not just an average comparison count.
    Stable?
    Can be stable
    Extra memory
    Bounded RAM plus external output
    Evidence / role
    Established

    The catch. The number of passes and available buffers can matter more than a small comparison saving.

    1960 publicationPolyphase merge sortParallel & externalDistribute runs unevenly among input tapes and rotate which tape receives output.
    THE PROCEDURE

    Distribute runs unevenly among input tapes and rotate which tape receives output.

    WHY USE THIS IDEA?

    A sequential-storage situation with a limited number of tape-like streams and a need to schedule merge passes.

    THE STORY / CHARACTERISTIC

    A design shaped by a limited number of sequential-access storage devices.

    Cost model
    Run-schedule and device dependent
    Average-case work
    Depends on initial run lengths, tape count and the sequence of merge passes.
    Stable?
    Can be stable
    Extra memory
    Multiple external streams
    Evidence / role
    Established

    The catch. Its cleverness addresses a particular I/O model; it is not a universal modern in-memory sort.

    1999 publicationFunnelsortParallel & externalRecursively merge through buffered funnels at several scales.
    THE PROCEDURE

    Recursively merge through buffered funnels at several scales.

    WHY USE THIS IDEA?

    Studying cache-efficient sorting without supplying the algorithm with the cache’s specific size.

    THE STORY / CHARACTERISTIC

    A cache-oblivious design seeks good transfers without being told cache sizes.

    Cost model
    O(n log n) work; cache-efficient model
    Average-case work
    Comparison work and expected elapsed time are distinct; its transfer guarantee uses a specified cache model.
    Stable?
    Can be stable
    Extra memory
    O(n)
    Evidence / role
    Established

    The catch. The theoretical I/O guarantee assumes the paper’s cache model and tall-cache condition.

    1979 Gates/Papadimitriou paperPancake sortUnusualMove the largest remaining pancake to the top, then flip it to the bottom.
    THE PROCEDURE

    Move the largest remaining pancake to the top, then flip it to the bottom.

    WHY USE THIS IDEA?

    A constrained-move puzzle: useful for learning to design a procedure around operations you are allowed to use.

    THE STORY / CHARACTERISTIC

    Bill Gates coauthored a paper on bounds for sorting by prefix reversal.

    Cost model
    O(n²) for basic max-and-flip method
    Average-case work
    The basic method scans every unfinished prefix for its maximum, giving quadratic comparisons. The number and lengths of flips depend on the input.
    Stable?
    No
    Extra memory
    O(1), iterative flips
    Evidence / role
    Exact curiosity

    The catch. Their bounds research is not the same as inventing the puzzle. Only prefix reversals are legal moves.

    2002 publicationBead sort / gravity sortUnusualRepresent nonnegative integers as rows of beads; let the beads settle into ordered row lengths.
    THE PROCEDURE

    Represent nonnegative integers as rows of beads; let the beads settle into ordered row lengths.

    WHY USE THIS IDEA?

    A physical-model thought experiment about representing positive integers as beads and accounting for the apparatus.

    THE STORY / CHARACTERISTIC

    Arulanandham, Calude and Dinneen explored a physical model of sorting.

    Cost model
    Depends on physical vs simulated model
    Average-case work
    Depends on the physical or simulated model, maximum value and representation cost.
    Stable?
    Not meaningful for bare counts
    Extra memory
    May require O(n·M) cells
    Evidence / role
    Model-specific

    The catch. A fast physical settling step does not include all encoding, hardware or simulation costs; M is the maximum value.

    Folklore; 2007 analysisBogosortUnusualRandomly shuffle and check whether the result is ordered. Repeat.
    THE PROCEDURE

    Randomly shuffle and check whether the result is ordered. Repeat.

    WHY USE THIS IDEA?

    A counterexample showing that eventually finding an answer is very different from having a practical procedure.

    THE STORY / CHARACTERISTIC

    A correct sorted result can come from an absurdly unhelpful search strategy.

    Cost model
    Expected Θ(n·n!) for shuffle/check; unbounded worst
    Average-case work
    With independent uniform shuffles of n distinct keys, success probability per attempt is 1/n!; expected attempts are n!.
    Stable?
    No
    Extra memory
    O(1) shuffle workspace
    Evidence / role
    Randomised curiosity

    The catch. Uniform independent shuffles eventually succeed with probability one, but have no finite worst-case attempt bound.

    Classical teaching curiosityStooge sortUnusualSort the first two thirds, the last two thirds and the first two thirds again.
    THE PROCEDURE

    Sort the first two thirds, the last two thirds and the first two thirds again.

    WHY USE THIS IDEA?

    A recursion exercise that exposes the cost of solving overlapping subproblems repeatedly.

    THE STORY / CHARACTERISTIC

    Overlapping recursive work turns a simple idea into a very expensive one.

    Cost model
    O(n^2.71), approximately
    Average-case work
    The standard recursion follows the same size-dependent structure regardless of input order.
    Stable?
    No
    Extra memory
    O(log n) recursion
    Evidence / role
    Exact curiosity

    The catch. The exponent is log(3)/log(3/2). A divide-and-conquer shape alone does not promise efficiency.

    1984 satireSlowsortUnusualRecursively find maxima in two halves, put the larger last, then sort the remaining prefix again.
    THE PROCEDURE

    Recursively find maxima in two halves, put the larger last, then sort the remaining prefix again.

    WHY USE THIS IDEA?

    A deliberate inefficiency example for learning to analyse recursive work rather than judging code by its length.

    THE STORY / CHARACTERISTIC

    Broder and Stolfi inverted the usual optimisation objective in their pessimal-algorithms work.

    Cost model
    Superpolynomial in standard analysis
    Average-case work
    The deliberately repeated recursive structure controls its large cost; measured averages do not make it practical.
    Stable?
    No
    Extra memory
    Implementation-dependent
    Evidence / role
    Exact curiosity

    The catch. It deliberately repeats work; a concise recursive definition need not be fast.

    2011 internet appearanceSleep sortUnusualStart a timer for each value and emit when it wakes.
    THE PROCEDURE

    Start a timer for each value and emit when it wakes.

    WHY USE THIS IDEA?

    A thought experiment about clocks, parallel tasks and hidden scheduling costs.

    THE STORY / CHARACTERISTIC

    It tries to turn numeric order into waking order.

    Cost model
    Delay depends on values and scheduling
    Average-case work
    Delays depend on values and scheduling jitter; there is no dependable general sorting-time guarantee.
    Stable?
    No guarantee
    Extra memory
    Tasks/timers proportional to input
    Evidence / role
    Not a reliable general sort

    The catch. Real timers jitter, task starts differ and negatives need handling. The scheduler has inherited much of the problem.

    Internet folklore; origin uncertainStalin sortUnusualDiscard each value smaller than the last retained one.
    THE PROCEDURE

    Discard each value smaller than the last retained one.

    WHY USE THIS IDEA?

    A counterexample for testing specifications. Deletion is valid filtering, but is not full sorting.

    THE STORY / CHARACTERISTIC

    The joke exposes a missing requirement: a sorted-looking output can lose data.

    Cost model
    O(n) filtering
    Average-case work
    The one-pass filter performs linear work but does not preserve the full input.
    Stable?
    Keeps surviving order
    Extra memory
    O(1) possible
    Evidence / role
    Filtering, not full sorting

    The catch. It produces a nondecreasing subsequence, not a permutation of the full input. A merge-based repair would be a different algorithm.

    2021 Fung paperI Can’t Believe It Can SortUnusualFor every i and every j, swap when A[i] < A[j]. The output is ascending.
    THE PROCEDURE

    For every i and every j, swap when A[i] < A[j]. The output is ascending.

    WHY USE THIS IDEA?

    Testing an initially surprising loop structure, then explaining its correctness through an ordered-prefix invariant.

    THE STORY / CHARACTERISTIC

    Fung found it while deliberately constructing wrong algorithms; the classroom detail is unverified.

    Cost model
    Exactly n² comparisons
    Average-case work
    Exactly n² key comparisons on every input of length n, including already ordered input.
    Stable?
    No
    Extra memory
    O(1)
    Evidence / role
    Exact curiosity

    The catch. Symmetric-looking loops hide asymmetric progress. It is correct but needlessly quadratic even on ordered input.

    2024 preprintExpoSortUnusualUse repeated recursion to intentionally take exponential time.
    THE PROCEDURE

    Use repeated recursion to intentionally take exponential time.

    WHY USE THIS IDEA?

    An intentionally reluctant sorting construction used to explore exponential work rather than reduce it.

    THE STORY / CHARACTERISTIC

    Abrahamsen’s paper pursues reluctant sorting, continuing the tradition of deliberately inefficient algorithms.

    Cost model
    Θ(2ⁿ)
    Average-case work
    Its deliberately exponential recursion is the object of analysis, not an optimised average workload.
    Stable?
    Implementation-dependent
    Extra memory
    Recursive workspace
    Evidence / role
    Exact curiosity

    The catch. This is mathematical humour with a real cost analysis, not a performance recommendation.

    2020 publicationLearnedSortAI & learningFit a model estimating where a value belongs; distribute it and repair remaining disorder.
    THE PROCEDURE

    Fit a model estimating where a value belongs; distribute it and repair remaining disorder.

    WHY USE THIS IDEA?

    Numeric sorting where a learned estimate of rank may guide distribution and repair can restore exact order.

    THE STORY / CHARACTERISTIC

    Machine learning helps while sorting the data, unlike AlphaDev’s offline program discovery.

    Cost model
    Model, distribution and repair dependent
    Average-case work
    Depends on the distribution, model error, training overhead and cost of repairing misplaced records.
    Stable?
    No, usual implementation
    Extra memory
    Model/bucket-dependent
    Evidence / role
    Research

    The catch. Model error, duplicates and training overhead must be included in the workload.

    2021 preprintLearnedSort 2.0AI & learningRedesign learned distribution to handle repeated keys more effectively.
    THE PROCEDURE

    Redesign learned distribution to handle repeated keys more effectively.

    WHY USE THIS IDEA?

    Studying how a learned distribution sort handles the repeated keys that challenged its earlier design.

    THE STORY / CHARACTERISTIC

    The authors identified high-duplicate inputs as a weakness in the original design.

    Cost model
    Distribution-dependent hybrid
    Average-case work
    Depends in particular on repeated-key behaviour as well as prediction and repair cost.
    Stable?
    No, usual implementation
    Extra memory
    Model/bucket-dependent
    Evidence / role
    Research

    The catch. A useful example of adversarial data exposing an assumption in a promising algorithm.

    2023 Nature publicationAlphaDev small-sort routinesAI & learningSearch for correct, low-latency assembly programs for tiny sorting tasks.
    THE PROCEDURE

    Search for correct, low-latency assembly programs for tiny sorting tasks.

    WHY USE THIS IDEA?

    Tiny fixed-size subroutines called inside a larger library sort. The learning happens before deployment.

    THE STORY / CHARACTERISTIC

    Reinforcement learning found routines incorporated into LLVM’s libc++ sorting code.

    Cost model
    O(1) for fixed tiny input sizes
    Average-case work
    Input size is fixed and tiny; useful measurements compare instruction sequences on specified hardware.
    Stable?
    Routine-dependent
    Extra memory
    O(1)
    Evidence / role
    Established

    The catch. These are small building blocks. They do not remove the Ω(n log n) comparison lower bound for arbitrary n.

    2024 preprintDovetailSortResearch frontierCombine integer-sorting techniques with special treatment of frequent keys.
    THE PROCEDURE

    Combine integer-sorting techniques with special treatment of frequent keys.

    WHY USE THIS IDEA?

    Parallel integer-sorting research in which representation and frequent keys are part of the computational model.

    THE STORY / CHARACTERISTIC

    A theory-and-practice study of sorting integers in parallel.

    Cost model
    Parallel integer-model bounds
    Average-case work
    Depends on the integer-key and processor model, including key frequencies.
    Stable?
    Implementation-dependent
    Extra memory
    Parallel implementation-dependent
    Evidence / role
    Research

    The catch. Integer representation, duplication and processor model are essential to interpreting its guarantees.

    2025 preprintParameter-aware partition sortingResearch frontierMeasure order using richer parameters than input length and adapt partition-based sorting to them.
    THE PROCEDURE

    Measure order using richer parameters than input length and adapt partition-based sorting to them.

    WHY USE THIS IDEA?

    Studying a formal notion of optimality that depends on richer input parameters than length alone.

    THE STORY / CHARACTERISTIC

    Sen’s work asks what it should mean for an algorithm to be universally optimal.

    Cost model
    Optimality under paper’s parameters
    Average-case work
    Read the cited paper’s input parameters and optimality definition before comparing averages.
    Stable?
    Model-dependent
    Extra memory
    See paper
    Evidence / role
    Research

    The catch. This is a defined theoretical notion, not “fastest for every real-world input”.

    2025 preprint; 2026 journal listingAdaptive Hybrid SortResearch frontierSelect among sorting strategies using observed properties of the input.
    THE PROCEDURE

    Select among sorting strategies using observed properties of the input.

    WHY USE THIS IDEA?

    Examining the cited proposal’s strategy-selection rules and the assumptions behind its reported comparisons.

    THE STORY / CHARACTERISTIC

    The specific research proposal linked below studies selection between strategies; this label is not a unique name for every adaptive hybrid.

    Cost model
    Strategy- and assumptions-dependent
    Average-case work
    Depends on the specific strategies selected and the paper’s workload assumptions.
    Stable?
    Chosen-strategy dependent
    Extra memory
    Chosen-strategy dependent
    Evidence / role
    Research

    The catch. Author-reported comparisons need independent reproduction; do not treat a promising title as a universal guarantee.

    9 March 2026 preprintbsortResearch frontierUse a binary-quicksort-derived method for signed, unsigned and floating-point representations.
    THE PROCEDURE

    Use a binary-quicksort-derived method for signed, unsigned and floating-point representations.

    WHY USE THIS IDEA?

    Research on sorting different numeric representations using a binary-quicksort-derived framework.

    THE STORY / CHARACTERISTIC

    Guzmán proposes one representation-aware framework for several numeric types.

    Cost model
    O(wn), w word width, reported
    Average-case work
    Reported O(wn) bound; actual average timing depends on numeric type and implementation.
    Stable?
    Not specified here
    Extra memory
    O(w), reported
    Evidence / role
    Research

    The catch. The reported bound includes word width. Representation and floating-point ordering conventions are not optional details.

    13 July 2026 preprintNeed for Speed SortResearch frontierRecursively refine value intervals; clean small buckets with insertion sort and fall back when splits fail.
    THE PROCEDURE

    Recursively refine value intervals; clean small buckets with insertion sort and fall back when splits fail.

    WHY USE THIS IDEA?

    Exploring numeric interval refinement with cleanup and fallback when an interval split does not help.

    THE STORY / CHARACTERISTIC

    A 2026 distribution-sort proposal by Sučić, Vitasović and Petrušić.

    Cost model
    O(n log n) worst, reported
    Average-case work
    Author-reported benchmark results; no independent average reproduced here.
    Stable?
    Not specified here
    Extra memory
    See full implementation/model
    Evidence / role
    Research

    The catch. Benchmark claims are the authors’ results, not reproduced here; read the full paper for workspace accounting.

    29 July 2026 preprintMinimal-move in-place sortingResearch frontierUse an ordered-set structure to reduce comparison overhead while guaranteeing only linear moves.
    THE PROCEDURE

    Use an ordered-set structure to reduce comparison overhead while guaranteeing only linear moves.

    WHY USE THIS IDEA?

    Research where moving records is expensive enough to make linear moves a distinct objective.

    THE STORY / CHARACTERISTIC

    Xu and Chick focus on moving records as a separate resource from comparing them.

    Cost model
    n lg n + O(n) comparisons with high probability
    Average-case work
    The highlighted comparison guarantee is probabilistic; it is not itself an average runtime statement.
    Stable?
    Not specified here
    Extra memory
    In-place, paper’s model
    Evidence / role
    Research

    The catch. The near-optimal comparison statement is probabilistic; the paper also gives a distinct worst-case tradeoff.

    July 2026 preprintRandom-order online sortingResearch frontierStudy sorting decisions when items arrive in random order under online constraints.
    THE PROCEDURE

    Study sorting decisions when items arrive in random order under online constraints.

    WHY USE THIS IDEA?

    Studying the cited online arrival model; its decisions and objective differ from sorting an available array.

    THE STORY / CHARACTERISTIC

    Recent theory explores what arrival assumptions buy an algorithm.

    Cost model
    Different online model
    Average-case work
    The expectation is tied to its random-arrival model and online objective.
    Stable?
    Not a batch stability claim
    Extra memory
    Model-dependent
    Evidence / role
    Research

    The catch. An online objective is not interchangeable with sorting an already available array. See the model before comparing bounds.

    THE FRONTIER / WHAT WAS NEW BY THE CUTOFF?

    Even in 2026,
    there are better questions.

    Can one numeric representation do more?

    bsort proposes a binary-quicksort-derived method with reported O(wn) time, where w is word width. “Linear” needs that parameter in view. ↗

    When should distribution give up?

    Need for Speed Sort refines value buckets, then uses cleanup and fallback mechanisms. Its reported results are conditional on the paper’s workloads. ↗

    What if moving a record is costly?

    Minimal-move sorting separates moves from comparisons. The reported randomised result achieves linear moves and near-optimal comparisons with a stated probability guarantee. ↗

    These sources were available before 13 September 2026. This page verifies attribution and summarises stated models; it does not independently reproduce their proofs or performance benchmarks. The cutoff is a research boundary, not a claim that nothing else was published.