InsertSort

Třídění vkládáním

 

Třídění vkládáním je rychlejší než SelektSort,ale pomalé vzhledem k Quicksortu. Třídící metoda spočívá ve vkládání čísla před nejmenší vetší číslo. Vkládání probíhá do neustále se zvětčující části pole (seřazené).

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

 

Neaktivní čísla

Aktivní čísla (se kterými se pracuje)

Čísla která se přesunula

 

Takto vypadá Insertsort v Delphi

Procedure InsertSort(var p:TpoleCisel); // uspořádá pole podle velikosti
var i,j,pom:integer;
begin
for i:=0 to length(p) do
begin

pom:=p[i];
j:=i;

while (index>= 1) and (P[index] < Pole[index-1]) do
begin
pom:= Pole[index];
Pole[index] := Pole[index - 1];
Pole[index - 1] := pom;
dec(index);
end;
end;
end;