Sobes.tech
Junior — Middle

Как да определим времевата сложност на алгоритъма за сортиране с мехурчета?

sobes.tech AI

Отговор от 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]);
        }
    }
}

Следователно, алгоритъмът не е ефективен за големи масиви поради квадратичната си сложност.