Nu bestaat een unsigned int in c++ uit 4 bytes. Ik gebruik nu elke byte om op te delen in groepen. Voor de meeste beduidende byte krijgen we dus radix = 256. We gaan de elementen dus opdelen in groepen van 256. Wanneer ik dit nu doe voor een tabel van 10 elementen is de kans groot dat alle elementen in een aparte groep belanden (wat ook zo is), als we nu de groepen in juiste volgorde sorteren kunnen we enkel uit de hoogste byte al de juiste volgorde halen. (Zo kan je de getallen 3454,4333,1222 ook sorteren door alleen naar de eerste getallen te kijken vermits de 3 getallen in een andere groep zouden belanden).
Goed, alle getallen zitten in een aparte groep, de groepen worden correct gesorteerd, maar tot mijn verbazing zijn de getallen zelf niet gesorteerd!
Klein voorbeeldje:
Code: Selecteer alles
byte getal
89 1625
40 21544
200 32200
177 11953
202 7626
113 26993
88 8280
0 16384
34 7714
223 28127
Na sorteren:
0 16384
34 7714
40 21544
88 8280
89 1625
113 26993
177 11953
200 32200
202 7626
223 28127