Пузырьковая сортировка в C++: реализация шаблонов и методы

Вот реализация алгоритма пузырьковой сортировки на C++ с использованием шаблонов:

template<typename T>
void bubbleSort(T arr[], int size) {
    for (int i = 0; i < size - 1; ++i) {
        for (int j = 0; j < size - i - 1; ++j) {
            if (arr[j] > arr[j + 1]) {
                T temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
}

Эту функцию шаблона можно использовать с различными типами данных, такими как целые числа, числа с плавающей запятой или пользовательские объекты, если для типа данных определен оператор сравнения (>).

Другие методы реализации пузырьковой сортировки включают:

  1. Реализация пузырьковой сортировки как отдельной функции вместо функции шаблона.
  2. Использование отдельной функции или функтора сравнения вместо оператора сравнения.
  3. Изменение алгоритма пузырьковой сортировки для выполнения сортировки по убыванию, а не по возрастанию.
  4. Добавление оптимизаций в алгоритм, например проверка того, отсортирован ли массив, чтобы избежать ненужных итераций.