Matemática Múltipla Escolha

Considere algoritmos de ordenação interna, que processam os dados diretamente na memória principal (RAM). Sobre a complexidade de espaço desses algoritmos, assinale a alternativa correta:

Considere algoritmos de ordenação interna, que processam os dados diretamente na memória principal (RAM). Sobre a complexidade de espaço desses algoritmos, assinale a alternativa correta:

  1. Todos os algoritmos de ordenação interna exigem O(n²) de espaço adicional, ou O(1).
  2. Algoritmos de ordenação interna podem exigir O(n) de espaço adicional, como no Merge Sort, ou O(1), quando implementados in-place, como no Bubble Sort, Insertion Sort e Selection Sort.
  3. Todos os algoritmos de ordenação interna exigem O(n log n) de espaço adicional.
  4. Algoritmos de ordenação interna nunca podem ser implementados com O(1) de espaço.
  5. A complexidade de espaço de todos os algoritmos de ordenação interna é sempre O(n³).

Resolução completa

Explicação passo a passo

B
Alternativa B

Alternativa B - Algoritmos de ordenação interna podem exigir O(n) de espaço adicional, como no Merge Sort, ou O(1), quando implementados in-place, como no Bubble Sort, Insertion Sort e Selection Sort.

Análise da Questão

Esta questão aborda dois conceitos fundamentais em Estrutura de Dados: a diferença entre ordenação interna e externa, além da complexidade de espaço (auxiliar) necessária para cada algoritmo.

1. Ordenação Interna vs. Externa

A questão define corretamente que estamos falando de ordenção interna.

  • Ordenação Interna: Os dados cabem inteiramente na memória RAM durante o processo. É o cenário padrão para vetores e arrays pequenos/médios.
  • Ordenação Externa: Usada quando os dados são muito grandes para caber na memória, exigindo armazenamento secundário (disco rígido).

2. Complexidade de Espaço Auxiliária

A complexidade de espaço refere-se à quantidade de memória extra que o algoritmo precisa para funcionar, além do espaço ocupado pelos próprios dados a serem ordenados. Existem duas categorias principais:

  • In-Place (O(1)): O algoritmo reorganiza os elementos dentro do próprio array original, usando apenas variáveis temporárias constantes (como índices ou trocas simples).
  • Exemplos citados: Bubble Sort, Insertion Sort, Selection Sort e Heap Sort.
  • Por que O(1)? Eles não criam novos arrays grandes; apenas manipulam posições existentes.
  • Não In-Place / Auxiliares (O(n)): Alguns algoritmos precisam de um buffer ou array auxiliar para realizar a ordenação de forma eficiente.
  • Exemplo citado: Merge Sort.
  • Por que O(n)? Para fundir (merge) duas metades ordenadas, ele precisa copiar os dados para um array temporário do mesmo tamanho do original antes de voltar a colocá-los no lugar certo.

Tabela Comparativa de Espaço

AlgoritmoTipo de ImplementaçãoComplexidade de Espaço
Bubble SortIn-PlaceO(1)
Insertion SortIn-PlaceO(1)
Selection SortIn-PlaceO(1)
Merge SortNão In-Place (clássico)O(n)
Quick SortIn-Place (recursivo)O(\log n) (pilha de chamadas)

Por que as outras alternativas estão erradas?

  • A e C: Estão incorretas ao afirmar que todos os algoritmos exigem O(n^2) ou O(n \log n). A maioria dos algoritmos clássicos usa pouco espaço (O(1) ou O(\log n)).
  • D: Afirma que nunca é possível usar O(1), o que é falso dado que existem diversos algoritmos in-place.
  • E: A complexidade O(n^3) é extremamente alta para espaço e não se aplica à realidade dos algoritmos de ordenação padrão.

Portanto, a alternativa B é a única que descreve corretamente a diversidade de requisitos de memória encontrados nos algoritmos de ordenação interna.

Tem outra questão para resolver?

Resolver agora com IA

Mais questões de Matemática

Ver mais Matemática resolvidas

Tem outra questão de Matemática?

Cole o enunciado, tire uma foto ou descreva o problema — a IA resolve com explicação completa em segundos.