Reorganises Quicksort's partition step into two separate phases: a comparison phase that fills small fixed-size index blocks with positions of out-of-place elements, then a swap phase that exchanges those indexed pairs in sequence.
Separating comparison from swapping eliminates the branch mispredictions that slow classic Quicksort on modern CPUs, the comparison phase accesses memory predictably and produces no conditional branches around swaps.