Напишите программу, которая сортирует массив по возрастанию "методом камня": аналогично "методу пузырька", но - Pascal

Узнай цену своей работы

Формулировка задачи:

Помогите пожалуйста написать код.Напишите программу, которая сортирует массив по возрастанию "методом камня": аналогично "методу пузырька", но в обратном порядке: самый "тяжелый" элемент из оставшихся спускается к концу массива. Входные данные Первая строка содержит размер массива N . Во второй строке через пробел задаются N чисел – элементы массива. Гарантируется, что 0 < N ≤ 10000 . Выходные данные Программа должна выводить весь массив после каждой перестановки элементов. Все элементы массива выводятся в одну строку и разделяются пробелами, после окончания вывода массива выполняется переход на новую строку. Если перестановок не было, программа выводит только число 0. Примеры входные данные 4 4 3 2 1 выходные данные 3 4 2 1 3 2 4 1 3 2 1 4 2 3 1 4 2 1 3 4 1 2 3 4

Решение задачи: «Напишите программу, которая сортирует массив по возрастанию "методом камня": аналогично "методу пузырька", но»

textual
Листинг программы
var
  a: array [1..10000] of Integer;
  n, i, j, k, t: Integer;
begin
  ReadLn(n);
  for i:=1 to n do Read(a[i]);
  j:=n;
  repeat
    k:=j; j:=0;
    for i:=1 to k-1 do
      if a[i+1]<a[i] then begin
        j:=i; t:=a[i]; a[i]:=a[i+1]; a[i+1]:=t;
        for t:=1 to n do Write(' ',a[t]); WriteLn;
      end;
  until j=0;
  if k=n then WriteLn(0);
end.

Объяснение кода листинга программы

  1. Объявляется массив a с размерностью 10000 и типом данных Integer.
  2. Объявляются переменные n, i, j, k, t, все типа Integer.
  3. Происходит ввод значения переменной n с клавиатуры.
  4. Заполняется массив a значениями, вводимыми с клавиатуры, от 1 до n.
  5. Устанавливается начальное значение j равным n.
  6. Начинается цикл, повторяющийся, пока j не станет равным 0.
  7. Внутри цикла переменной k присваивается значение j, а j присваивается 0.
  8. Запускается вложенный цикл для сравнения соседних элементов массива.
  9. Если a[i+1] меньше a[i], то выполняется перестановка значений a[i] и a[i+1], и изменения записываются в переменную t.
  10. Выводится на экран содержимое массива.
  11. Осуществляется проверка условия выхода из внешнего цикла.
  12. Если k равно n, выводится сообщение 0.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4 из 5
Похожие ответы