Sobes.tech
Junior — Middle

Ako určiť časovú zložitosť algoritmu bublinkového triedenia?

sobes.tech AI

Odpoveď od AI

Časová zložitosť algoritmu bublinkového triedenia je určená počtom porovnaní a výmen, ktoré vykonáva.

Bublinkové triedenie prechádza cez pole niekoľkokrát, pri každej iterácii porovnáva susedné prvky a vymieňa ich, ak sú v nesprávnom poradí.

  • V najhoršom a priemernom prípade algoritmus vykoná približne n-1 prechodov cez pole s n prvkami.
  • Pri každom prechode sa vykoná až n-1 porovnanie.

Celkovo je časová zložitosť O(n²).

Príklad:

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]);
        }
    }
}

Preto je algoritmus neefektívny pre veľké polia kvôli svojej kvadratickej zložitosti.