ShellSort

 

Takto vypadá Shellsort v Pascalu



procedure ShellSort(var A : ArrayType; N : integer);
var
Done : boolean;
Jump,
I,
J : integer;

begin
Jump := N;

while (Jump > 1) do
begin
Jump := Jump div 2;

repeat
Done := true;

for J := 1 to (N - Jump) do
begin
I := J + Jump;

if (A[J] > A[I]) then
begin
Swap(A[J], A[I]);
Done := false
end;
end;
until Done;
ShowOutput;
readln

end
end;