Вот реализация алгоритма пузырьковой сортировки на 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;
}
}
}
}
Эту функцию шаблона можно использовать с различными типами данных, такими как целые числа, числа с плавающей запятой или пользовательские объекты, если для типа данных определен оператор сравнения (>
).
Другие методы реализации пузырьковой сортировки включают:
- Реализация пузырьковой сортировки как отдельной функции вместо функции шаблона.
- Использование отдельной функции или функтора сравнения вместо оператора сравнения.
- Изменение алгоритма пузырьковой сортировки для выполнения сортировки по убыванию, а не по возрастанию.
- Добавление оптимизаций в алгоритм, например проверка того, отсортирован ли массив, чтобы избежать ненужных итераций.