Insertion Sort (ordenação por inserção)
Gabarito: letra C. O algoritmo apresentado é o Insertion Sort, que utiliza explicitamente os comandos de repetição for e while para percorrer e ordenar o array. As demais alternativas descrevem características não pertinentes: não há recursão, desvios incondicionais, risco de laço infinito (em condições normais) nem abordagem dividir e conquistar.
Alternativa A — ❌ Incorreta
A recursividade não está presente; o algoritmo é iterativo, baseado em laços, não em chamadas recursivas.
Alternativa B — ❌ Incorreta
Os comandos de desvio incondicional (como goto) não são utilizados. O algoritmo emprega desvios condicionais (while e if implícito no for), não incondicionais.
Alternativa C — ✅ Correta ⟵ GABARITO
O algoritmo contém um laço for (linha 1) e um laço while (linha 4), ambos comandos de repetição que controlam o fluxo de ordenação.
Alternativa D — ❌ Incorreta
Em condições normais, o algoritmo não entra em laço infinito: a variável i é decrementada a cada iteração do while, e a condição i > 0 e X[i] > valor eventualmente se torna falsa, encerrando o laço.
Alternativa E — ❌ Incorreta
A abordagem "dividir e conquistar" é característica de algoritmos como Merge Sort e Quick Sort. O Insertion Sort é um algoritmo incremental, que insere cada elemento em sua posição correta em um subarray já ordenado.