DISTRIBUČNÍ TŘÍDĚNÍ
PROBLÉM
Uspořádat pole A. obsahující N celých čísel z intervalu 1 až K. 
  
ALGORITMUS
Distribuční třídění objevil Harold H. Seward v roce 1954. Je použitelné jen v případě, že každý prvek pole je celé číslo z intervalu 1 až K. Pokud K=O(N), pak časová složitost tohoto algoritmu je O(N). Algoritmus využívá pracovní pole.
  
PRAXE
Následující tabulka porovnává 4 algoritmy třídění. Pole A. obsahuje celá čísla z intervalu 1 až Max, kde Max=10,100,1000,40000.
 
| Doba výpočtu v sekundách pro N=10 000 |  
| Algoritmus | 
Max = 100 | 
Max = 1000 | 
Max = 40000 | 
Max = 99999 | 
| QUICKSORT | 
4.66  | 
4.53  | 
4.89  | 
4.59  | 
| HEAPSORT | 
10.26  | 
10.67  | 
11.58  | 
11.18  | 
| SHELLSORT | 
 7.45  | 
 8.89  | 
10.58  | 
10.13  | 
| COUNTING_SORT | 
 1.88  | 
 1.95  | 
 7.93  | 
31.85  | 
 
IMPLEMENTACE
Jednotka: vnitřní podprogram
 
Globální proměnné: pole A. celých čísel z intervalu 1 až K
 
Parametry: přirozené číslo N - počet prvků v A., přirozené číslo K
 
Výsledek: Přeuspořádá vstupní pole tak, že platí 
A.1<=A.2<=...<=A.N
 
 COUNTING_SORT: procedure expose A.  
 parse arg N, K 
 C. = 0 
 do J = 1 to N
   Aj = A.J; C.Aj = C.Aj + 1
 end 
 do J = 2 to K 
    Jm1 = J - 1; C.J = C.J + C.Jm1 
 end 
 do J = N to 1 by -1 
    Aj = A.J; CAj = C.Aj; B.CAj = A.J 
     C.Aj = CAj - 1 
 end 
 do J = 1 to N; A.J = B.J; end
 return 
 
  | 
 
SOUVISLOSTI
Literatura
Cormen T. H., Leiserson Ch. E., Rivest R. L. Introduction to Algorithms 
The MIT Press, Cambridge, 1990
Sedgewick R., Algorithms 
Addison-Wesley, Reading, Massachusetts, 1984
Poděkování
Změnil jsem test z Max=10 ... 40000 na Max=100  ... 99999. Díky za nápad patří Walteru Pachlovi z Vídně.
Poznámka
Tento test běžel v prostředí Windows 2000 Professional na počítači se 132MB RAM a procesorem typu x86Family 6 Mode 6 Stepping 5.