Sobes.tech
Назад к вопросам
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]);
        }
    }
}

Таким образом, алгоритм неэффективен для больших массивов из-за квадратичной сложности.