Sobes.tech
Junior — Middle

Como determinar a complexidade temporal do algoritmo de ordenação bubble sort?

sobes.tech IA

Resposta da IA

A complexidade temporal do algoritmo de ordenação bubble sort é determinada pelo número de comparações e permutações que realiza.

O bubble sort passa várias vezes pelo array, comparando elementos adjacentes em cada iteração e trocando-os de lugar se estiverem na ordem errada.

  • Nos piores e médios casos, o algoritmo realiza aproximadamente n-1 passagens por um array de n elementos.
  • Em cada passagem, ocorrem até n-1 comparações.

No total, a complexidade temporal é O(n²).

Exemplo:

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

Assim, o algoritmo não é eficiente para arrays grandes devido à sua complexidade quadrática.