Pular para o conteúdo principal

Questão de Algoritmos e Estrutura de Dados — Algoritmos — FCM 2017

Algoritmos e Estrutura de DadosAlgoritmos
Código
qq260081
Banca
FCM
Órgão
IF Baiano
Ano
2017
Nível
Superior
Cargo
Analista de Tecnologia da Informação
Qual algoritmo de ordenação interna possui as seguintes características: não é estável, o tempo de execução é linear em relação ao tamanho da entrada e o fato da entrada já estar ordenada não melhora o custo?
  1. ASeleção
  2. BShellsort
  3. CInserção
  4. DHeapsort
  5. EQuicksort
Revelar gabarito e comentário

GabaritoA — Seleçã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”.

Algoritmo de ordenação: Selection Sort

Gabarito: letra A (Seleção). O algoritmo que atende às características descritas é o Selection Sort (ordenação por seleção): não é estável, seu tempo de execução é quadrático (O(n²)) — mas a banca pode ter interpretado como linear em relação ao número de trocas (n-1 trocas) — e a entrada já ordenada não altera seu custo, pois ele sempre percorre todo o vetor para encontrar o menor elemento.

A questão cobra três propriedades fundamentais de algoritmos de ordenação: estabilidade, complexidade e sensibilidade à ordenação inicial. Vamos analisar cada alternativa:

Alternativa A — ✅ Correta ⟵ GABARITO

  • Não é estável: O Selection Sort não preserva a ordem relativa de elementos iguais, pois pode trocar um elemento igual com outro de posição, quebrando a estabilidade.

  • Tempo de execução: No melhor, pior e médio caso, o Selection Sort realiza O(n²) comparações, e O(n) trocas. A afirmação de "tempo linear" na questão é imprecisa, mas o Selection Sort é o único entre as opções que não melhora com dados ordenados e é instável. As trocas são lineares, e talvez a banca tenha usado esse fato.

  • Entrada ordenada não melhora: O algoritmo sempre percorre o vetor inteiro para encontrar o menor elemento, independentemente da ordenação inicial, resultando sempre no mesmo número de comparações.

Alternativa B — ❌ Incorreta

Shellsort: não é estável, mas sua complexidade depende da sequência de gaps, geralmente entre O(n log n) e O(n²). Entradas ordenadas podem melhorar o desempenho em algumas implementações, e o tempo não é linear.

Alternativa C — ❌ Incorreta

Insertion Sort: é estável (preserva a ordem de elementos iguais). Além disso, seu melhor caso é O(n) quando a entrada já está ordenada, contrariando a característica de que a ordenação não melhora o custo.

Alternativa D — ❌ Incorreta

Heapsort: não é estável, mas sua complexidade é O(n log n) em todos os casos, e o tempo não é linear. Embora não se beneficie de dados ordenados, a complexidade não é linear.

Alternativa E — ❌ Incorreta

Quicksort: não é estável. Sua complexidade típica é O(n log n) e o pior caso é O(n²), que ocorre justamente quando a entrada está ordenada (dependendo da escolha do pivô). Portanto, a entrada ordenada piora o custo, não permanece igual.

PEGA ESSA DICA!

Para provas de concurso, decore as três propriedades de cada algoritmo de ordenação: estabilidade, complexidade assimptótica e comportamento com dados ordenados. Uma tabela de resumo:

Algoritmo

Estável

Melhor Caso

Pior Caso

Melhora com ordenação?

Seleção

Não

O(n²)

O(n²)

Não

Inserção

Sim

O(n)

O(n²)

Sim

Heapsort

Não

O(n log n)

O(n log n)

Não

Quicksort

Não

O(n log n)

O(n²)

Não (piora)

Shellsort

Não

O(n log n)

O(n²)

Depende

A armadilha da questão está no termo "tempo linear", que é tecnicamente incorreto para o Selection Sort. A banca provavelmente considerou o número linear de trocas (n-1) como "tempo de execução". Na dúvida, lembre-se: o Selection Sort é o único que não melhora com dados ordenados e não é estável entre as alternativas.

Gabarito: letra A

Link permanente: /questoes/qq260081