Considere o algoritmo abaixo, onde “Troca” é uma função que troca os elementos indicados nos parâmetros, e que “arredondaParaBaixo” recebe um argumento e o arredonda para baixo. Por exemplo, para o valor “5.0” retornará “5”, assim como para “5.9” também retornará “5”.
Procedimento FazAlgo ( A, i, j)
{
se (A[i] > A[j]),
então Troca (A[i], A[j]);
se (i+1< j),
então {
k := arredondaParaBaixo ( (j-i+1)/3 );
FazAlgo (A, i, j-k);
FazAlgo (A, i+k, j);
FazAlgo (A, i, j-k);
}
}
Sobre o algoritmo “FazAlgo”, considere as seguintes afirmativas:
1) Ordena o vetor “A”.
2) Aleatoriza os elementos do vetor “A”.
3) Tem complexidade O(n * log(n)), no pior caso.
Assinale a alternativa correta.