next up previous
Next: Heapsort Up: Řazení (třídění) Previous: Přímé vkládání

Shellova metoda

Tato metoda spočívá v řazení prvků s proměnným krokem. Proti třídění přímým vkládáním urychlí přesun prvků na větší vzdálenost.

  1. V prvním kroku řadíme prvky vzdálené o $\left[ N/2 \right]$.
    Seřadíme $\forall$ dvojice $\left( 1, [ N/2 ] + 1 \right)$, $\left( 2, [ N/2 ] + 2 \right)$, ..., $\left( N - [ N/2], N \right)$.
    Například pro $N = 17$, tedy celá část $\left[ \frac{N}{2} \right] = 8$,
    řadíme prvky s indexy $(1,9)$, $(2,10)$, $\dots$, $(8,16)$, $(9,17)$.
  2. Dále seřadíme všechny čtveřice s prvky vzdálenými o $\left[ N/4 \right]$.
    V našem příkladě je $\left[ \frac{N}{4} \right] = 4$, a tedyo třídíme $(1,5,9,13)$, $(2,6,10,14)$, $(3,7,11,15)$, $(4,8,12,16)$ a $(5,9,13,17)$.
  3. Ve třetím kroku třídíme osmice s prvky vzdálenými o $\left[ N/8 \right]$.
  4. Poslední krok je řazení $N$ čísel vkládáním, přehazujeme ale jen sousední čísla. Třídíme tedy jednu skupinu všech čísel.



Jiri Limpouch
2000-03-29