Предмет: Информатика, автор: Aranm

Написать программу,которая сортирует массив из N элементов по возрастанию методом “пузырька”и считает при этом количество произведённых перестановок.Протестировать программу на следующих исходных данных:
а) 2 5 1 6 4 10 4 2
б) 1 2 5 6 -4 11 12
в) 12 10 6 4 2 1 0

Ответы

Автор ответа: goldendevil
1

Нужный язык программирования не указан. Наверное, тебе подойдет Си :с

int n, tmp;           // переменные для длины массива и временная

int count = 0;     // переменная-счетчик для количества перестановок

scanf_s("%d", &n;)       // считываем количество элементов в массиве

int arr[n];               // объявляем массив из n элементов

for (int i = 0; i < n; i++) {          // формируем массив

       scanf_s("%d", arr[i]);

}

for (int i = 0; i < n; i++)  {          // сравниваем два соседних элемента (j и j+1)

     for (int j = 0; j < n - i - 1; j++)  {

                if (arr[j] > arr[j + 1])  {   // свапаем элементы местами, если порядок неверный через временную переменную

                        tmp = arr[j];

                        arr[j] = arr[j + 1];

                        arr[j + 1] = tmp;

                        count++;          // увеличиваем счетчик перестановок

                      }

               }

      }

ptintf("%d", count);         //выводим количество перестановок

Похожие вопросы
Предмет: Математика, автор: тупой78