Sorting algorithms/Insertion sort: Difference between revisions

Content added Content deleted
Line 332:
=={{header|Delphi}}==
 
<lang Delphi>procedureprogram InsertionSort(var S: string)TestInsertionSort;
 
{$APPTYPE CONSOLE}
 
type
TItem = Integer; // declare ordinal type for array item here
TArray = array of TItem;
 
procedure InsertionSort(var A: TArray);
var
I, J: Integer;
Item: TItem;
 
begin
for I:= 1 + Low(A) to High(A) do begin
Item:= A[I];
J:= I - 1;
while (J >= Low(A)) and (A[J] > Item) do begin
A[J + 1]:= A[J];
Dec(J);
end;
A[J + 1]:= Item;
end;
end;
 
var
A: TArray;
I: Integer;
 
begin
SetLength(A, 16);
for I:= Low(A) to High(A) do
A[I]:= Random(100);
for I:= Low(A) to High(A) do
Write(A[I]:3);
Writeln;
InsertionSort(A);
for I:= Low(A) to High(A) do
Write(A[I]:3);
Writeln;
Readln;
end.</lang>
Output:
<pre>
0 3 86 20 27 67 31 16 37 42 8 47 7 84 5 29
0 3 5 7 8 16 20 27 29 31 37 42 47 67 84 86
</pre>
===String sort===
<lang Delphi>// string is 1-based array of Char
procedure InsertionSort(var S: string);
var
I, J, L: Integer;