Пузырьковая сортировка: количество обменов - Free Pascal

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

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

Если можно, то с объяснениями..Помогите решить: Определите, сколько обменов сделает алгоритм пузырьковой сортировки по возрастанию для данного массива.

Входные данные

На первой строке дано число N (1 ≤ N ≤ 1000) – количество элементов в массиве. На второй строке – сам массив. Гарантируется, что все элементы массива различны и не превышают по модулю 109.

Выходные данные

Выведите одно число – количество обменов пузырьковой сортировки.

Примеры

входные данные

5 1 2 3 4 5

выходные данные

0

входные данные

5 5 4 3 2 1

выходные данные

10

Решение задачи: «Пузырьковая сортировка: количество обменов»

textual
Листинг программы
const nn=1000;
type mas=array[1..nn] of longint;
var i,j,n,k:integer;
    a:mas;
    tmp:longint;
begin
 readln(n);
 for i:=1 to n do read(a[i]);
 k:=0;
 for i:=1 to n-1 do
  for j:=1 to n-i do
   if a[j]>a[j+1] 
    then
     begin
      tmp:=a[j];
      a[j]:=a[j+1];
      a[j+1]:=tmp;
      inc(k)
     end;
 writeln(k)
end.

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

  1. В начале программы объявляются переменные и массив: — nn — количество элементов в массиве (1000); — mas — массив (1000) длинных целых чисел; — i, j, n, k — счётчики для выполнения алгоритма; — a — временная переменная для обмена значениями; — tmp — временная переменная;
  2. Далее считывается количество элементов для сортировки и сами элементы.
  3. Инициализируется счётчик успешных обменов k=0.
  4. Затем двумя вложенными циклами выполняется сортировка: — Внешний цикл (for i:=1 to n-1) — количество элементов, которые нужно переставить в нужном порядке; — Внутренний цикл (for j:=1 to n-i) — проход по элементам, которые нужно переставить; — Если текущий элемент больше следующего (if a[j]>a[j+1]), то: — Значение текущего элемента сохраняется в tmp; — Значение текущего элемента присваивается значению следующего элемента; — Значение tmp присваивается значению следующего элемента; — Увеличивается счётчик успешных обменов k.
  5. После выполнения сортировки выводится количество успешных обменов k.

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


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

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

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