Сортировка пузырьком

"Я хочу, чтобы меня услышали в России. Абсолютно все. Тысячи жертв, сотни пленных, которые просто не могут понять ради чего их отправили в Украину.
Отправили в Украину умирать. Убивать других. Чем скорее вы скажете своей власти, что войну нужно немедленно остановить – тем больше ваших людей останутся живыми.
Мы видим, что действительно есть выступления ваших граждан против войны. И мы знаем, что многие в России сейчас просто шокированы подлостью и жестокостью власти. И это очень правильная реакция. Я благодарю вас за эту реакцию! Спасибо Леониду Парфёнову, Дмитрию Муратову, Юрию Дудю, Лие Ахеджаковой, Валерию Меладзе – ну, и тысячам. Тысячам достойных других россиян, чья совесть звучит – звучит громко.
Просто остановите тех, кто лжет вам. Лжет нам. Лжет всему миру.
Нужно закончить эту войну. Мы можем жить в мире. В мире глобальном. В мире человечества".

Пузырьковая сортировка – представляет собой простой алгоритм сортировки, который последовательно проходит по массиву, сравнивает соседние элементы и меняет их местами, если они находятся в неправильном порядке. Проход по списку повторяется до тех пор, пока список не будет отсортирован.

Реализация алгоритма сортировки пузырьком

Россияне ваши войска ведут ужасную войну против Украины, убивают мирное население, не щадя женщин и детей! Мы отстаиваем свою родину, потери войск РФ за несколько дней войны превысили потери в Чеченской войне!
Заберите с Украины своих отцов, мужей, сыновей пока они живы!

Не молчите! Остановите войну! НЕТ ВОЙНЕ!
Пока ты молчишь, гибнут мирные украинцы!
#include <iostream>
using namespace std;

//направление сортировки
enum SortOrder
{
    ASC,    //по возрастанию
    DESC    //по убыванию
};

//обмен элементов массива
void swapElements(int &element1, int &element2)
{
    int tempVar = element1;
    element1 = element2;
    element2 = tempVar;
}

//проверка правильности расположения элементов
bool isSorted(int a, int b, SortOrder sortOrder)
{
    if (sortOrder == ASC)
    {
        return a <= b;
    }
    else
    {
        return a >= b;
    }
}

//сортировка пузырьком
int *bubbleSort(int *array, int n, SortOrder sortOrder)
{
    bool swappedFlag = false;

    for (int i = 1; i < n; i++)
    {
        swappedFlag = false;

        for (int j = 0; j < n - i; j++)
        {
            if (!isSorted(array[j], array[j + 1], sortOrder))
            {
                swapElements(array[j], array[j + 1]);
                swappedFlag = true;
            }
        }

        //если обменов не было прерываем цикл
        if (!swappedFlag)
        {
            break;
        }
    }

    return array;
}

//заполнение массива с клавиатуры
int *fillArray(int *arr, int n)
{
    for (int i = 0; i < n; i++)
    {
        cout << "arr[" << i << "] = ";
        cin >> arr[i];
    }

    return arr;
}

//вывод массива на экран
void printArray(int *arr, int n)
{
    for (int i = 0; i < n; i++)
    {
        cout << arr[i] << " ";
    }
}

int main(int argc, char **argv)
{
    int *arr;
    int size;

    cout << "n = ";
    cin >> size;

    arr = new int[size];
    arr = fillArray(arr, size);

    arr = bubbleSort(arr, size, ASC);

    printArray(arr, size);

    delete arr;
    cout << endl;
    system("pause");
    return 0;
}

Смотрите также: