Пожалуйста помогите с программой по информатике!(Задана последовательность целых...

0 голосов
27 просмотров

Пожалуйста помогите с программой по информатике!(
Задана последовательность целых чисел(ввод с клавиатуры),количество которых не превосходит 100.Требуется расположить элементы последовательности в возрастающем порядке.


Информатика (71 баллов) | 27 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

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


(142k баллов)