

Seu próximo nível começa aqui
Seu desenvolvimento não pode ter limites. Garanta sua Assinatura Ilimitada e libere uma preparação completa com os melhores professores do Brasil.
Considere os algoritmos de ordenação sortA e sortB listados a seguir, para ordenação de vetores em ordem crescente descrito em linguagem C++.
template <typename T> void sortA(T v[], int n)
{
for (int i=0; i <n; i ++)
for (int j=i; (j >0) && (v[j] < v[j-1]); j--)
swap(v, j, j-1);
}
template <typename T> void sortB(T v[], int n)
{
for (int i=0; i < (n-1); i++){
int lowindex=i;
for (int j=n-1; j > i; j--){
if (v[j] < v[lowindex]) lowindex=j;
}
swap(v, lowindex, i);
}
}
template <typename T> void swap(T v[], int i, int j){
T temp;
temp=v[i];
v[i]= v[j];
v[j]= temp;
}
É CORRETO apenas o que se afirma em:
O número de execuções da função swap no sortA é constante independentemente do vetor a ser ordenado.
No algoritmo sortB, o valor lowindex e i será sempre diferente na chamada do procedimento swap.
O algoritmo sortA é vantajoso quando o vetor a ser ordenado está em ordem totalmente decrescente.
Dependendo do valor inicial do vetor, o sortB pode exigir menos chamadas da função swap que o sortA.