Lajittelu suoritetaan
vaiheessa.
Loppuosat lajitellaan ensin lokeroihin osituslajittelulla
(radix sort)
ensimmäisen symbolin mukaan. Tämän jälkeen jokaisessa
vaiheessa lajitellaan aikaisemman vaiheen lokeroiden
sisällöt uusin lokeroihin
siten,
että jokaisessa vaiheessa lajittelun perusteena käytetään kaksi kertaa
niin pitkää alkuosaa kuin edellisessä vaiheessa.
Merkitään lajittelun vaihetta ja lajittelukriteerinä käytettävän
alkuosan pituutta :lla siten, että
lajittelun
edetessä. Olkoon
ja
kaksi loppuosaa, jotka kuuluvat
samaan lokeroon jossain lajittelun vaiheessa. Tällöin
:llä ja
:llä on ainakin
symbolia pitkä yhteinen alkuosa.
Ongelmaksi jää
:n ja
:n välinen vertailu seuraavien
:n symbolin mukaan. Kuitenkin tämä vertailu on jo suoritettu,
koska
ja
on jo lajiteltu lokeroihin ensimmäisten
symbolin perusteella.
Olkoon ensimmäinen loppuosa ensimmäisessä lokerossa
(lokerossa, jonka
-alkuosat ovat ensimmäisenä aakkosjärjestyksessä).
Koska
:n ensimmäiset
symbolia sisältävä osajono on
aakkosjärjestyksessä pienin
kaikista
symbolin mittaisista symbolijonoista, loppuosan
täytyy olla ensimmäisenä sen omassa
:n pituisten alkuosien
mukaan järjestetyssä lokerossa. Tämän ansiosta
siirretään ensimmäiseksi sen omassa lokerossa ja siirto merkitään
tehdyksi. Jokaista lokeroa kohden täytyy säilyttää tietoa
jo siirrettyjen (ja siten myös järjestettyjen) loppuosien
lukumäärästä. Algoritmi käy järjestyksessä läpi kaikki
:n symbolin mukaan
järjestetyt loppuosat
ja siirtää jokaisen loppuosan
omassa lokerossaan seuraavalle vapaalle paikalle.
Kun kaikki loppuosat on käyty läpi tasolla
, siirrytään
tasolle
. Yhden tason läpikäynnin aikavaatimus on
. Koska tasoja on enintään
,
lajittelun kokonaisaikavaatimus on
pahimmassa
tapauksesa.