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

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

  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years