Назад к вопросам
Junior — Middle
83
Как определить временную сложность алгоритма пузырьковой сортировки?
Ответ от нейросети
sobes.tech AI
Временная сложность алгоритма пузырьковой сортировки определяется количеством сравнений и перестановок, которые он выполняет.
Пузырьковая сортировка проходит по массиву несколько раз, на каждой итерации сравнивая соседние элементы и меняя их местами, если они идут в неправильном порядке.
- В худшем и среднем случаях алгоритм выполняет примерно n-1 проходов по массиву из n элементов.
- На каждом проходе происходит до n-1 сравнений.
Итого, временная сложность составляет O(n²).
Пример:
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
std::swap(arr[j], arr[j + 1]);
}
}
}
Таким образом, алгоритм неэффективен для больших массивов из-за квадратичной сложности.