Последовательным просмотром чисел ai…,an найти наименьшее i такое, что ai>ai+1. Поменять ai и ai+1местами и возобновить просмотр с начала массива. Когда не удастся найти такое i, массив будет упорядочен нужным образом — Pascal(Паскаль)

program PascalGuru;

var
  A: array [1 .. 50] of integer; { объявление переменной 1-мерного массива }
  n, i, k: integer; { переменные для цикла }
  swop: boolean; { булевая переменная }

procedure exchange(var A, b: integer);
{ процедура меняющая местами 2 числа "a" и "b" }
var
  c: integer;
begin
  c := A;
  A := b;
  b := c;
end; { --- конец процедуры обмена 2-х чисел }
{ **************************************************************** }

begin { начало программы }
  writeln('Vvedite razmer posledovatelinosti A:');
  read(n);
  for i := 1 to n do
  begin
    write('A[', i, ']=');
    readln(A[i]);
  end; { Ввод последовательности с клавиатуры }

  write('Vot vvedennaia vami posledovatelinosti A: ');
  for i := 1 to n do
    write(A[i], '  '); { Вывод введенной последовательности на экран }
  writeln;
  writeln;

  k := n; { временной переменной присваиваем размер последовательности }

  repeat { начало цикла, сортирующего последовательность }
    swop := false;
    for i := 1 to k - 1 do { цикл }
      if A[i] > A[i + 1] then
      begin { если последующий элемент больше текущего: }
        exchange(A[i], A[i + 1]);
        swop := true;
      end; { обмениваем их }
    k := k - 1; { уменьшаем продолжительность цикла }
  until not swop; { --- конец цикла, сортирующего последовательность }

  write('Vot otsortirovanaya posledovatelinosti A: ');
  for i := 1 to n do
    write(A[i], '  '); { Выводим на экран отсортированную последовательность }

  readln;

end.

Leave a Comment

56 − 55 =