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

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

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

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

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

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

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

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

Примеры

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

5 1 2 3 4 5

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

0

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

5 5 4 3 2 1

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

10

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

textual
Листинг программы
  1. const nn=1000;
  2. type mas=array[1..nn] of longint;
  3. var i,j,n,k:integer;
  4.     a:mas;
  5.     tmp:longint;
  6. begin
  7.  readln(n);
  8.  for i:=1 to n do read(a[i]);
  9.  k:=0;
  10.  for i:=1 to n-1 do
  11.   for j:=1 to n-i do
  12.    if a[j]>a[j+1]
  13.     then
  14.      begin
  15.       tmp:=a[j];
  16.       a[j]:=a[j+1];
  17.       a[j+1]:=tmp;
  18.       inc(k)
  19.      end;
  20.  writeln(k)
  21. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы