Selection Sort
Selection Sort
Selection Sort
● Funcionamento
Funciona da seguinte maneira: Primeiro, encontra o menor item no array e troca-o
com a primeira entrada (permanece na mesma posição se a primeira entrada já for
a menor). Em seguida, encontra o próximo menor item e troca-o com a segunda
entrada. Continua dessa forma até que todo o array esteja ordenado. Esse método
é chamado de ordenação por seleção porque funciona selecionando repetidamente
o item menor restante.
● Complexidade
A complexidade de tempo do Selection Sort é quadrática, pois há dois loops
aninhados:
Um loop para selecionar um elemento do Array (um por um) = C(N)
Outro loop para comparar esse elemento com cada outro elemento do Array = C(N)
Portanto, a complexidade geral:
2
Complexidade=C ( N )× C( N )=C ( N × N )=C ( N )
● Estabilidade
Selection Sort não é estável. Um algoritmo de ordenação é considerado estável se
preservar a ordem relativa de elementos com chaves iguais. Em outras palavras, se
houver dois elementos iguais no array original e um estiver antes do outro, após a
ordenação, o elemento que estava originalmente antes permanecerá antes do outro
elemento igual.
No entanto, o Selection Sort, ao selecionar repetidamente o menor elemento
restante e trocá-lo com o primeiro elemento não ordenado, não garante a
estabilidade. Durante as trocas, a ordem relativa dos elementos iguais pode ser
alterada.
Por exemplo, considere o array [(2, 2), (3, 1), (2, 3)]. Nesse caso, temos dois
elementos com a mesma chave (2). Após a ordenação pelo Selection Sort, é
possível que o elemento (2, 3) fique antes do elemento (2, 3), alterando a ordem
relativa dos elementos iguais. Isso indica que o Selection Sort não é um algoritmo
de ordenação estável.
● Representação Gráfica
● Implementação em C