Questão de Algoritmos e Estrutura de Dados — Algoritmos — FUNDEP (Gestão de Concursos) 2024
Algoritmos e Estrutura de Dados›Algoritmos
Código
qg188329
Banca
FUNDEP (Gestão de Concursos)
Órgão
UFOP
Ano
2024
Nível
Superior
Cargo
Analista de Tecnologia da Informação
Analise o método de ordenação representado pelo algoritmo a seguir.• Dividir recursivamente o vetor a ser ordenado em dois, até obter n vetores de 1 único elemento.• Aplicar a intercalação tendo como entrada 2 vetores de um elemento, formando um vetor ordenado de dois elementos.• Repetir esse processo formando vetores ordenados cada vez maiores, até que todo o vetor esteja ordenado.Qual é o método de ordenação representado pelo algoritmo?
AMergesort.
BSheelsort.
CBubblesort.
DQuicksort.
Revelar gabarito e comentário▾
GabaritoA — Mergesort.
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: Mergesort
Gabarito: letra A — Mergesort. A descrição do algoritmo é exatamente a do Mergesort: divisão recursiva do vetor em partes menores até obter vetores de um único elemento, seguida da intercalação (merge) desses vetores ordenados, formando vetores cada vez maiores até que todo o conjunto esteja ordenado. Esse é o clássico método de ordenação por intercalação, também conhecido como merge sort.
O enunciado descreve, passo a passo, o funcionamento do Mergesort: (1) dividir recursivamente o vetor ao meio até restar apenas vetores de um elemento; (2) intercalar (merge) esses vetores de um elemento, gerando um vetor ordenado de dois; (3) repetir o processo, intercalando pares de vetores ordenados, até que o vetor inteiro esteja ordenado. Esse comportamento é típico do algoritmo de ordenação por intercalação.
Característica
Mergesort (A) ✅
Shellsort (B) ❌
Bubblesort (C) ❌
Quicksort (D) ❌
Divisão recursiva do vetor
Sim, divide ao meio até 1 elemento
Não
Não
Sim, particiona por pivô
Intercalação (merge) de vetores ordenados
Sim, etapa central do algoritmo
Não
Não
Não
Base do algoritmo
Divisão e conquista + intercalação
Inserção com gaps (distâncias)
Comparação e troca de adjacentes
Divisão e conquista + particionamento
Resultado final
Vetor ordenado por merge sucessivo
Vetor ordenado por inserção com gaps
Vetor ordenado por bolhas
Vetor ordenado por partições recursivas
1Dividir vetor ao meio
2Dividir recursivamente
3Vetores de 1 elemento
4Intercalar pares
5Vetor ordenado completo
LEVEL · soulevel.com.br
Alternativa A — ✅ Correta ⟵ GABARITO
O Mergesort é um algoritmo de ordenação estável, baseado no paradigma de divisão e conquista. Ele divide a lista em duas metades recursivamente até que cada sublista tenha tamanho 1 (que por definição já está ordenada), e depois intercala (merge) essas sublistas de forma ordenada. A descrição do enunciado casa perfeitamente com esse método.
Alternativa B — ❌ Incorreta
Sheelsort não é um algoritmo de ordenação por divisão recursiva e intercalação. O Shellsort é uma generalização do Insertion Sort, que ordena elementos distantes entre si e vai reduzindo o espaçamento (gap). Não há divisão recursiva nem intercalação de vetores ordenados.
Alternativa C — ❌ Incorreta
Bubblesort (ordenação bolha) percorre o vetor repetidamente, comparando elementos adjacentes e trocando-os se estiverem fora de ordem, até que o vetor esteja ordenado. Não há divisão recursiva nem intercalação.
Alternativa D — ❌ Incorreta
Quicksort também é um algoritmo de divisão e conquista, mas sua abordagem é diferente: ele escolhe um pivô, particiona o vetor em elementos menores e maiores que o pivô, e depois ordena recursivamente as partições. Não há intercalação de vetores ordenados — a ordenação ocorre durante a própria partição (in-place).
NÃO CAIA NESSA!
Para identificar algoritmos de ordenação, foque na descrição do processo. Se o texto menciona "dividir recursivamente até ter um elemento" e "intercalar (merge) para formar vetores ordenados maiores", sem dúvida é Mergesort. O Quicksort também divide recursivamente, mas não intercala — ele particiona com base em um pivô e não requer etapa de merge. Memorize essas características para não confundir.