Const
nm = 100;{максимальная длина массива}
var
i, j, n, step, t: integer;
a: array[1..nm] of integer;
begin
Write('Введите количество элементов в массиве: ');
Readln(n);
Write('Введите элементы массива через пробел ');
for i := 1 to n do Read(a[i]);
{ сортировка методом Шелла }
step := n div 2;
while step > 0 do
begin
for j := n - step downto 1 do
begin
i := j;
while i <= n - step do <br> begin
if a[i] > a[i + step] then begin
t := a[i]; a[i] := a[i + step]; a[i + step] := t
end;
i := i + step
end
end;
step := step div 2
end;
Writeln('*** Отсортированный массив ***');
for i := 1 to n do Write(a[i], ' ')
end.
Тестовое решение:
Введите количество элементов в массиве: 15
Введите элементы массива через пробел 15 26 -35 7 0 21 5 9 27 0 -11 26 4 42 -23
*** Отсортированный массив ***
-35 -23 -11 0 0 4 5 7 9 15 21 26 26 27 42