Os métodos de ordenação podem ser classificados como estávei...
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.
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.