MaxSort

 

MaxSort je algoritmus téměř totožný s SelectSortem, akorát probýhá obráceně (od největšího k nejmenšímu).

3 5 2 1 4 10 8 6 9 7
3 5 2 1 4 7 8 6 9 10
3 5 2 1 4 7 8 6 9 10
3 5 2 1 4 7 6 8 9 10
3 5 2 1 4 6 7 8 9 10
3 5 2 1 4 6 7 8 9 10
3 4 2 1 5 6 7 8 9 10
3 1 2 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10

 

Neaktivní čísla

Čísla která se vymění

Čísla která se vymění

 

Takto vypadá Maxsort v Delphi

Procedure MaxSort(var p:TpoleCisel); // uspořádá pole podle velikosti
var i,j,max,index:integer;
begin
for i:= length(p) downto 2 do //pro všechny prvky kromě prvního
begin
// uspořádání úseku pole od indexu i do konce:

max:=P[1];
index:=i; //předpokládáme, že p[i] je maximální

for j:=2 to i do //procházíme ostatní prvky
if p[j]>max then //jestliže nalezneme větší ...
begin
max:=p[j];
index:=j; // ... zapamatuje si ho
end;

if index <> j then
begin
p[index]:=p[i]; // nejmenší prvek dá
p[i]:=max; // na konec úseku
end;
end;