Estrutura de dados e classificação de seleção de algoritmos
A classificação por seleção é um algoritmo de classificação simples. Este algoritmo de classificação é um algoritmo baseado em comparação no local no qual a lista é dividida em duas partes, a parte classificada na extremidade esquerda e a parte não classificada na extremidade direita. Inicialmente, a parte classificada está vazia e a parte não classificada é a lista inteira.
O menor elemento é selecionado da matriz não classificada e trocado pelo elemento mais à esquerda, e esse elemento torna-se parte da matriz classificada. Este processo continua movendo o limite da matriz não classificada por um elemento à direita.
Este algoritmo não é adequado para grandes conjuntos de dados, pois sua complexidade média e de pior caso são de Ο (n 2 ), onden é o número de itens.
Como funciona a classificação por seleção?
Considere a seguinte matriz representada como exemplo.
Para a primeira posição na lista classificada, toda a lista é verificada sequencialmente. A primeira posição onde 14 está armazenado atualmente, pesquisamos em toda a lista e descobrimos que 10 é o valor mais baixo.
Portanto, substituímos 14 por 10. Após uma iteração 10, que por acaso é o valor mínimo da lista, aparece na primeira posição da lista classificada.
Para a segunda posição, onde 33 está residindo, começamos a examinar o resto da lista de maneira linear.
Descobrimos que 14 é o segundo valor mais baixo da lista e deve aparecer em segundo lugar. Trocamos esses valores.
Após duas iterações, dois valores mínimos são posicionados no início de maneira classificada.
O mesmo processo é aplicado ao restante dos itens da matriz.
A seguir está uma representação pictórica de todo o processo de classificação -
Agora, vamos aprender alguns aspectos da programação da classificação por seleção.
Algoritmo
Step 1 − Set MIN to location 0
Step 2 − Search the minimum element in the list
Step 3 − Swap with value at location MIN
Step 4 − Increment MIN to point to next element
Step 5 − Repeat until list is sorted
Pseudo-código
procedure selection sort
list : array of items
n : size of list
for i = 1 to n - 1
/* set current element as minimum*/
min = i
/* check the element to be minimum */
for j = i+1 to n
if list[j] < list[min] then
min = j;
end if
end for
/* swap the minimum element with the current element*/
if indexMin != i then
swap list[min] and list[i]
end if
end for
end procedure
Para saber sobre a implementação de classificação de seleção na linguagem de programação C, clique aqui .