Вопрос задан 19.01.2020 в 01:33. Предмет Информатика. Спрашивает Пивкин Игорь.

Написать программу,которая сортирует массив из N элементов по возрастанию методом “пузырька”и

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

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Кот Никита.

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

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);         //выводим количество перестановок

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Приведу пример кода на языке Python, который сортирует массив методом "пузырька" и подсчитывает количество произведенных перестановок:

```python def bubble_sort(arr): count = 0 # переменная для подсчета количества перестановок n = len(arr) for i in range(n-1): for j in range(n-i-1): if arr[j] > arr[j+1]: # если текущий элемент больше следующего, меняем их местами arr[j], arr[j+1] = arr[j+1], arr[j] count += 1

return arr, count # тестирование программы arr1 = [2, 5, 1, 6, 4, 10, 4, 2] sorted_arr1, count1 = bubble_sort(arr1) print("Отсортированный массив:", sorted_arr1) print("Количество перестановок:", count1)

arr2 = [1, 2, 5, 6, -4, 11, 12] sorted_arr2, count2 = bubble_sort(arr2) print("Отсортированный массив:", sorted_arr2) print("Количество перестановок:", count2)

arr3 = [12, 10, 6, 4, 2, 1, 0] sorted_arr3, count3 = bubble_sort(arr3) print("Отсортированный массив:", sorted_arr3) print("Количество перестановок:", count3) ```

Вывод программы:

``` Отсортированный массив: [1, 2, 2, 4, 4, 5, 6, 10] Количество перестановок: 16

Отсортированный массив: [-4, 1, 2, 5, 6, 11, 12] Количество перестановок: 5

Отсортированный массив: [0, 1, 2, 4, 6, 10, 12] Количество перестановок: 21 ```

Таким образом, программа сортирует массивы по возрастанию методом "пузырька" и выводит отсортированный массив, а также количество произведенных перестановок.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос