Os métodos de ordenação podem ser classificados como estávei...

Próximas questões
Com base no mesmo assunto
Q91110 Algoritmos e Estrutura de Dados
A respeito dos princípios de programação, julgue os seguintes itens.

Os métodos de ordenação podem ser classificados como estáveis ou não estáveis. O método é estável se preserva a ordem relativa de dois valores idênticos. Alguns métodos eficientes como shellsort ou quicksort não são estáveis, enquanto alguns métodos pouco eficientes, como o método da bolha, são estáveis.
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A alternativa correta é C - certo.

Vamos analisar detalhadamente por que essa alternativa está correta e explicar os conceitos abordados na questão.

Estabilidade em Métodos de Ordenação:

Em algoritmos de ordenação, a estabilidade de um método refere-se à propriedade de preservar a ordem relativa de elementos iguais. Ou seja, se dois elementos têm o mesmo valor e aparecem em uma certa ordem na lista original, um algoritmo de ordenação estável garantirá que esses elementos mantenham essa ordem na lista ordenada.

Por exemplo, considere a lista de pares (1, 'A'), (2, 'B'), (1, 'C'). Se a ordenarmos pelo primeiro elemento e o método for estável, a ordem relativa dos pares com o valor 1 será preservada, resultando em (1, 'A'), (1, 'C'), (2, 'B'). Se o método não for estável, a ordem relativa dos elementos iguais pode ser alterada.

Exemplos de Algoritmos:

O enunciado corretamente menciona alguns algoritmos de ordenação e suas características de estabilidade:

  • Bubble Sort: Este é um algoritmo de ordenação simples e estável. Ele compara elementos adjacentes e os troca se estiverem na ordem errada. Devido ao seu comportamento, ele naturalmente preserva a ordem relativa de elementos iguais.
  • Shell Sort: Este é um algoritmo mais avançado e eficiente, baseado no Insertion Sort. No entanto, ele não é estável, pois faz trocas de elementos que podem alterar a ordem relativa de elementos iguais.
  • Quick Sort: Este é um dos algoritmos de ordenação mais rápidos e eficientes, utilizando o conceito de divisão e conquista. No entanto, ele também não é estável, pois pode trocar elementos de posições distantes, alterando a ordem relativa de elementos iguais.

Conclusão:

Os métodos de ordenação podem ser classificados como estáveis ou não estáveis, dependendo de manterem ou não a ordem relativa de elementos iguais. Na questão proposta, a afirmação de que alguns métodos eficientes como shellsort ou quicksort não são estáveis, enquanto alguns métodos menos eficientes como o método da bolha são estáveis, está correta. Portanto, a alternativa correta é C - certo.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Leia: http://pt.wikipedia.org/wiki/Ordena%C3%A7%C3%A3o_est%C3%A1vel
Um algoritmo de ordenação é estável se preserva a ordem de registros de chaves iguais. Ou seja, se tais registros aparecem na sequencia ordenada (resultado da ordenação) na mesma ordem em que estão na sequencia inicial (entrada desordenada).

Alguns algoritmos estáveis:
  • Bubble
  • Cocktail
  • Insertion
  • Merge
  • Bucket
  • Counting

Alguns algoritmos instáveis:
  • Selection
  • Quick
  • Heap
  • Shell

Decoreba:

 

- Métodos Estáveis: Bubble, Insertion e Merge; -BIM - "O que for diferente desses são os instáveis"

- Instáveis: Selection, Quick, Heap e Shell. 

Gabarito Certo

algoritmos estáveis - MIB, homens de preto - merge, insert e bubble sort

algoritmos instáveis - SSH Q, segurança - select, shell, heap e quick sort

 

 

 

"Retroceder Nunca Render-se Jamais !"
Força e Fé !
Fortuna Audaces Sequitur !

Um algoritmo de ordenação é estável (= stable) se não altera a posição relativa dos elementos que têm o mesmo valor. Digamos, por exemplo, que um vetor de números do tipo double é ordenado com base na parte inteira dos números, ignorando a parte fracionária. Se o algoritmo de ordenação for estável, os números que têm a mesma parte inteira continuarão na mesma ordem em que estavam originalmente. Na seguinte figura, a primeira linha mostra o vetor original e a segunda, o vetor ordenado:


44.0 55.1 55.2 66.0 22.9 11.022.5 33.0

11.0 22.9 22.5 33.0 44.0 55.1 55.2 66.0 Observe que 22.9 e 22.5 permaneceram na mesma ordem que estavam antes da ordenação, o mesmo para 55.1 e 55.2


Eis outro exemplo. Digamos que cada elemento do vetor é um struct com dois campos: o primeiro contém o nome de uma pessoa e o segundo contém o ano de nascimento da pessoa. Suponha que o vetor original tem dois João da Silva, primeiro o que nasceu em 1990 e depois o que nasceu em 1995. Se o vetor for ordenado por um algoritmo estável com base no primeiro campo, os dois João da Silva continuarão na mesma ordem relativa: primeiro o de 1990 e depois o de 1995.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo