160 likes | 312 Views
Prezentačný software. Základné triediace algoritmy. Základné triediace algoritmy. Triedenie vsúvaním Triedenie výberom Triedenie výmenou. Tabuľka zložitostí. Princíp triedenia vsúvaním. začíname jednoprvkovou postupnosťou, ktorá je vždy utriedená
E N D
Prezentačný software Základné triediace algoritmy
Základné triediace algoritmy Triedenie vsúvaním Triedenie výberom Triedenie výmenou Tabuľka zložitostí
Princíp triedenia vsúvaním začíname jednoprvkovou postupnosťou, ktorá je vždy utriedená do už utriedenej postupnosti vložíme prvok na miesto, kam patrí
Vizualizácia triedeniavsúvaním Utriedené! 2 6 3 9 6 > 3 6 < 9 2 < 6 26 3 9
Algoritmus triedenia vsúvaním for i:=2 to n do begin j:=i+1; x:=a[i]; while (j>=1) and (a[j]>x) do begin a[j+1]:=a[j]; dec(j); end; a[j+1]:=x; end; späť
Princíp triedenia výberom • vyberieme najväčší prvok a vložíme ho na miesto, kam patrí • potom sa zaoberáme postupnosťou, v ktorej neuvažujeme posledný prvok • proces opakujeme výberom najväčšieho prvku z nej
Vizualizácia triedenia výberomI. Utriedené! Tentokrát je najväčší tento. Najväčší cukrík vyberieme. A teraz tento. Ostal už len posledný.
Vizualizácia triedenia výberom II. Utriedené! 2 3 6 9 MAXIMUM 2 6 3 9
Algoritmus triedenia výberom for i:=0 to n-2 do begin max:=a[1]; k:=1; for j:=2 to n-i do if a[j]>max then begin max:=a[j]; k:=j; end; a[k]:=a[n-i]; a[n-i]:=max; end; späť
Princíp triedenia výmenou • porovnávame susedné prvky od prvého až po posledný • v prípade, že (j+1)- vý prvok je menší ako j- ty, nastáva ich výmena • proces opakujeme (n-1)- krát
Vizualizácia triedenia výmenou I. Utriedené! NEMENÍME NEMENÍME MENÍME MENÍME < < > >
Vizualizácia triedenia výmenou II. Utriedené! 6 2 3 9 2 < 6 6 < 3 6 < 9 ČÍSLA NEMENÍME ČÍSLA NEMENÍME MENÍME ČÍSLA
Algoritmus triedenia výmenou i:=0; q:=true; while (i<=n-2) and q do begin q:=false; for j:=1 to n-i-1 do if a[j]>a[j+1] then begin pom:=a[j]; a[j]:=a[j+1]; a[j+1]:=pom; q:=true; end; inc(i); end; späť
Označenia vyskytujúce sa v tabuľke Pnajl(n) – počet porovnaní, ktoré algoritmus vykoná pre postupnosť n prvkov v najlepšom prípade Snajl(n) – počet presunov, ktoré algoritmus vykoná pre postupnosť n prvkov v najlepšom prípade Analogicky pre Pnajh(n) a Snajh(n).