Сортировка с флажком - Pascal ABC

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

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

Помогите, пожалуйста, написать, сам новичок ничего не выходит пока, а программа очень нужна программа, которая сортирует массив, используя метод "пузырька" с флажком. Флажок (логическая переменная) показывает, была ли хотя бы одна перестановка элементов на очередном проходе по массиву. Если перестановок не было, работа программы заканчивается. Входные данные Первая строка содержит размер массива N . Во второй строке через пробел задаются N чисел – элементы массива. Гарантируется, что 0 < N ≤ 10000 . Выходные данные Программа должна выводить все элементы массива в одной строке через пробелы после каждого прохода, если во время этого прохода была перестановка элементов. Если перестановок не было, программа должна вывести исходный массив.

Решение задачи: «Сортировка с флажком»

textual
Листинг программы
procedure sort(var a:mas;n:byte);
var i,j:byte;
    sorted:boolean;
    x:real;
begin
repeat
sorted:=true;{пусть соседние элементы отсортиророваны}
for i:=1 to n-1 do
if a[i]>a[i+1] then{если нет}
  begin
   sorted:=false;
   x:=a[i];
   a[i]:=a[i+1];{обмениваем местами}
   a[i+1]:=x;
  end;
until sorted{все по порядку, заканчиваем}
end;

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

  1. В начале объявляются переменные: a (массив), n (количество элементов в массиве), i (индекс внутреннего цикла), j (индекс внешнего цикла), sorted (флаг, указывающий на то, что элементы отсортированы), x (переменная для временного хранения значения элемента).
  2. Затем идет описание внутреннего цикла repeat, который выполняется до тех пор, пока переменная sorted не станет равной true. Это означает, что все соседние элементы массива отсортированы.
  3. Внутри внутреннего цикла идет проверка условия if a[i] > a[i+1]. Если это условие истинно, то переменная sorted устанавливается в false, и переменная x присваивается значению a[i], а a[i+1] присваивается значению a[i]. Таким образом, элементы меняются местами.
  4. После выполнения внутреннего цикла, если переменная sorted все еще равна true, то это означает, что все элементы отсортированы, и процедура завершается.
  5. Код не использует вложенные списки.

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


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

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

8   голосов , оценка 4.5 из 5