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; |