###### tags: `Pascal Programming D1`
# Insertion Sort TB P.433
program InsertionSort;
const
N=5;
var
List: array[1..N] of integer;
procedure InputData;
begin
List[1]:=5;
List[2]:=9;
List[3]:=7;
List[4]:=2;
List[5]:=3;
end;
procedure DisplayList(p:integer);
var
count:integer;
begin
write('Pass ',p,':');
for count:= 1 to N do
write(List[count]:4);
writeln;
end;
procedure Sort;
var
pass:integer;
position:integer;
element:integer;
i, count:integer;
begin
for pass:=1 to N-1 do
begin
element:=List[pass+1];
position:=1;
for i:= 1 to pass do
if element>List[i]
then position:=i+1;
for count:= pass downto position do
List[count+1]:=List[count];
List[position]:=element;
DisplayList(pass);
end;
end;
begin
InputData;
DisplayList(0);
Sort;
end.