Pular para o conteúdo principal

Questão de Algoritmos e Estrutura de Dados — Algoritmos — Instituto Access 2025

Algoritmos e Estrutura de DadosAlgoritmos
Código
qg553059
Banca
Instituto Access
Órgão
UFAC
Ano
2025
Nível
Superior
Cargo
Analista de Tecnologia da Informação
Durante o desenvolvimento de um módulo de triagem de pacientes em um hospital público, foi necessário implementar um algoritmo para ordenar rapidamente uma lista de prioridades de atendimento, com base em tempo de chegada e gravidade do caso. Assinale a alternativa CORRETA que corresponde ao algoritmo eficiente para listas grandes, quando se busca desempenho e complexidade média ideal.
  1. AMerge Sort, por garantir complexidade O(n log n) de forma estável.
  2. BCounting Sort, pois se aplica a qualquer tipo de dado com eficiência.
  3. CSelection Sort, por eliminar trocas desnecessárias na ordenação.
  4. DInsertion Sort, por seu excelente desempenho em qualquer cenário.
  5. EBubble Sort, pela simplicidade de implementação e estabilidade.
Revelar gabarito e comentário

GabaritoA — Merge Sort, por garantir complexidade O(n log n) de forma estável.

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

Gabarito: letra A. O Merge Sort é o algoritmo que atende aos requisitos de eficiência para listas grandes, com complexidade O(n log n) no pior caso e característica de estabilidade, conforme solicitado pelo enunciado.

A questão testa o conhecimento sobre a complexidade e a aplicabilidade dos algoritmos de ordenação. O Merge Sort é um algoritmo de divisão e conquista que garante O(n log n) em todas as situações, sendo estável (mantém a ordem relativa de elementos iguais). As demais alternativas apresentam desvantagens que as tornam inadequadas para listas grandes.

Algoritmo

Complexidade Média

Estabilidade

Adequado para Listas Grandes?

Observação Principal

Merge Sort

O(n log n)

Sim

Sim

Garante desempenho previsível e preserva ordem de elementos iguais.

Counting Sort

O(n + k)

Sim

Não (depende do tipo de dado)

Eficiente apenas para inteiros em faixa limitada; não serve para dados genéricos.

Selection Sort

O(n²)

Não (geralmente)

Não

Muitas comparações; lento para grandes volumes.

Insertion Sort

O(n²)

Sim

Não

Bom apenas para listas pequenas ou quase ordenadas.

Bubble Sort

O(n²)

Sim

Não

Extremamente lento para listas grandes, apesar da simplicidade.

Algoritmos de ordenação
  • 1Eficientes (O(n log n))
    • Merge Sort
      • Estável
      • Pior caso O(n log n)
    • Quick Sort
      • Instável
      • Pior caso O(n²)
  • 2Ineficientes (O(n²))
    • Selection Sort
    • Insertion Sort
    • Bubble Sort
  • 3Específicos
    • Counting Sort
      • Apenas inteiros
      • Faixa limitada
LEVEL · soulevel.com.br

Alternativa A — ✅ Correta ⟵ GABARITO

O Merge Sort possui complexidade O(n log n) no pior, melhor e caso médio, e é estável. É ideal para ordenar grandes volumes de dados, pois mantém desempenho previsível mesmo em cenários adversos. Sua estabilidade é importante quando se deseja preservar a ordem original de itens com chaves iguais, como na triagem de pacientes por tempo de chegada e gravidade.

Alternativa B — ❌ Incorreta

O Counting Sort é eficiente apenas para dados inteiros em uma faixa limitada de valores. Ele não se aplica a qualquer tipo de dado, pois depende de chaves numéricas discretas. Para listas grandes com dados genéricos (como strings ou números reais), não é uma opção viável.

Alternativa C — ❌ Incorreta

O Selection Sort tem complexidade O(n²) em todos os casos, ou seja, realiza muitas comparações e trocas. Embora tenha a vantagem de fazer poucas trocas (no máximo n-1), ele não é eficiente para listas grandes, pois o tempo de execução cresce quadraticamente com o tamanho da entrada.

Alternativa D — ❌ Incorreta

O Insertion Sort tem complexidade O(n²) no pior caso (lista inversamente ordenada) e O(n) no melhor caso (lista já ordenada). Ele é adequado apenas para listas pequenas ou quase ordenadas, mas não possui desempenho consistente para listas grandes e desordenadas.

Alternativa E — ❌ Incorreta

O Bubble Sort tem complexidade O(n²) em todos os casos, exceto quando otimizado com interrupção precoce (melhor caso O(n) para lista já ordenada). Apesar da simplicidade e estabilidade, é extremamente lento para listas grandes, sendo inadequado para aplicações que exigem alto desempenho.

PEGA ESSA DICA!

Quando a questão menciona "listas grandes" e "complexidade média ideal", lembre-se de que algoritmos O(n log n) como Merge Sort, Quick Sort e Heap Sort são os mais indicados. O Merge Sort se destaca por ser estável e ter desempenho consistente. Já algoritmos O(n²) como Bubble, Insertion e Selection Sort só são recomendados para listas muito pequenas ou em contextos específicos.

Link permanente: /questoes/qg553059