Questão de Algoritmos e Estrutura de Dados — Algoritmos — CESPE / CEBRASPE 2022
Algoritmos e Estrutura de Dados›Algoritmos
Código
ce134524
Banca
CESPE / CEBRASPE
Órgão
DPE-RO
Ano
2022
Nível
Superior
Cargo
Analista da Defensoria Pública - Programação
O algoritmo de ordenação que requer uma quantidade constante de O(1) espaço de memória adicional é o algoritmo de
Aordenação por seleção.
Bordenação por mistura.
Cordenação por inserção.
Dordenação por flutuação.
Eordenação heapsort.
Revelar gabarito e comentário▾
GabaritoC — ordenação por inserção.
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Algoritmos de ordenação e complexidade de espaço
Gabarito: letra C. A ordenação por inserção (insertion sort) é um algoritmo que ordena elementos diretamente no próprio array, utilizando apenas uma quantidade constante de espaço adicional (O(1)), ou seja, algumas variáveis auxiliares para controle. O gabarito oficial aponta essa alternativa como correta.
A questão cobra o conhecimento de quais algoritmos são in-place (que não requerem memória extra proporcional ao tamanho da entrada). Dentre as opções, o merge sort (ordenção por mistura) é o único que claramente não é in-place, pois precisa de um array auxiliar de tamanho O(n) no processo de mesclagem. As demais alternativas – selection sort, bubble sort e heapsort – também podem ser implementadas com espaço O(1) adicional. Contudo, a banca definiu a ordenação por inserção como resposta oficial, provavelmente por ser um exemplo clássico e frequentemente cobrado em provas.
Algoritmo
Complexidade de espaço adicional
A) Ordenação por seleção
O(1) (in-place)
B) Ordenação por mistura (merge sort)
O(n)
C) Ordenação por inserção
O(1) (in-place)
D) Ordenação por flutuação (bubble sort)
O(1) (in-place)
E) Ordenação heapsort
O(1) (in-place)
Alternativa A — ❌ Incorreta
A ordenação por seleção também é in-place e utiliza espaço O(1). Apesar disso, não é a resposta indicada pelo gabarito oficial. A banca pode ter considerado que o insertion sort é o mais representativo, ou simplesmente definiu C como gabarito.
Alternativa B — ❌ Incorreta
A ordenação por mistura (merge sort) não é in-place: requer um array auxiliar de tamanho O(n) para realizar a mesclagem, violando a condição de O(1) adicional.
Alternativa C — ✅ Correta (⟵ GABARITO)
A ordenação por inserção é um algoritmo in-place: os elementos são inseridos na posição correta dentro do próprio array, utilizando apenas variáveis temporárias. Sua complexidade de espaço adicional é constante, O(1).
Alternativa D — ❌ Incorreta
A ordenação por flutuação (bubble sort) também é in-place com O(1) de espaço extra. Não é a resposta do gabarito, embora tecnicamente atenda ao requisito.
Alternativa E — ❌ Incorreta
O heapsort é in-place quando implementado iterativamente (ou com recursão de cauda otimizada), usando espaço adicional O(1). Novamente, não foi a escolha da banca.
NÃO CAIA NESSA!
Cuidado para não confundir o merge sort com os demais: ele é o único que não é in-place (requer O(n) de memória). As outras opções (seleção, inserção, flutuação, heapsort) são todas in-place, o que torna a questão ambígua. Na prova, memorize que a banca costuma cobrar o insertion sort como exemplo clássico de algoritmo com espaço O(1).