Selection sort é um algoritmo de ordenação simples. Este algoritmo de ordenação é um algoritmo baseado em comparação no local no qual a lista é dividida em duas partes, a parte ordenada na extremidade esquerda e a parte não Triada na extremidade direita. Inicialmente, a parte ordenada está vazia e a parte não Triada é a lista inteira.
o menor elemento é selecionado a partir do array não triado e trocado com o elemento mais à esquerda, e esse elemento se torna uma parte do array ordenado. Este processo continua movendo o contorno de array não triado por um elemento para a direita.
este algoritmo não é adequado para grandes conjuntos de dados, uma vez que as suas complexidades médias e piores são de Ο(n2), onde n é o número de itens.Como Funciona O Processo De Selecção?
considere a seguinte matriz representada como um exemplo.
para a primeira posição na lista ordenada, a lista completa é digitalizada sequencialmente. A primeira posição onde 14 está armazenado atualmente, nós procuramos em toda a lista e descobrimos que 10 é o valor mais baixo.
Selection Sort
So we replace 14 with 10. Após uma iteração 10, que acontece ser o valor mínimo na lista, aparece na primeira posição da lista ordenada.
For the second position, where 33 is residing, we start scanning the rest of the list in a linear manner.
we find that 14 is the second lowest value in the list and it should appear at the second place. Trocamos estes valores.
após duas iterações, dois valores mínimos são posicionados no início de uma forma ordenada.
the same process is applied to the rest of the items in the array.
a Seguir está uma representação pictórica de todo o processo de classificação −
Agora, vamos aprender alguns aspectos de programação de classificação de seleção.
algoritmo
Step 1 − Set MIN to location 0Step 2 − Search the minimum element in the listStep 3 − Swap with value at location MINStep 4 − Increment MIN to point to next elementStep 5 − Repeat until list is sorted
Pseudocode
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 < list then min = j; end if end for /* swap the minimum element with the current element*/ if indexMin != i then swap list and list end if end forend procedure
para saber sobre a implementação da ordenação de selecção na linguagem de programação C, por favor Clique aqui.