Řazení údajů ------------ Řazení = uspořádání údajů podle velikosti (existuje relace úplného uspořádání na množině dat) [Třídění = rozdělení množiny dat na části (rozklad množiny)] Přímé metody = realizace základního principu; Modifikované metody = "zlepšení" principu in situ = prostorová složitost je dána vstupními daty stabilita metody = data se stejnými klíči se nepřeskupují přímé řazení / nepřímé řazení = přeskupují / nepřeskupují se řazené údaje. Metody: - výběrové - vkládací - rozdělovací - slučovací Charakter metod: - přirozené: jsou schopny využít částečně seřazených dat - podle časové složitosti lineární, složené logaritmické, kvadratické, horší Předpoklad: Pole P, obsazeno prvních N indexů, data jsou porovnatelná Výběrové metody: ---------------- Přímý výběr (Straight Selection) -------------------------------- procedure Zamena(var P:Pole; A,B: Indexy); var Pom: Slozka; begin Pom:=P[A]; P[A]:=P[B]; P[B]:=Pom end; function Extrem(P:Pole;A,B:indexy):Indexy; var V,I:Indexy; begin V:=A; for I:=A+1 to B do if P[I]
P[I+1] then begin
Zamena(P, I, I+1);
Jeste:=true
end;
inc(J)
end;
Přirozená, sekvenční, stabilní, implementační jednoduchost,
časová složitost kvadratická.
Řazení hromadou (Heap Sort)
---------------------------
procedure Sift(L,R:Index);
var I,J: Index; Pom:Prvek; Jeste:Boolean;
begin I:=L;
J:=I*2;
Pom:=P[I];
Jeste:=J<=R;
while Jeste do begin
if JX do Dec(J);
if I<=J then begin
Zamena(P,I,J);
Inc(I);
Dec(J)
end
until I>J
end;
begin Rozdel;
if L