a) Princípio : a cada vez, selecione o menor elemento dos registros a serem classificados e coloque -o na ordem no final da sequência classificada até que todos os registros sejam classificados. Ou seja, cada viagem é selecionada como o registro i-és na sequência ordenada entre os registros N-I+1 (i = 1, 2, ... N-1). Os algoritmos baseados nessa idéia incluem principalmente classificação de seleção simples, classificação de seleção de árvores e classificação de heap. (Esta é uma seleção simples comum apenas para classificar)
b) a idéia básica de seleção simples de classificação : dada uma matriz: int [] arr = {n dados nele}; Na primeira vez, selecione os menores dados nos dados a serem classificados arr [1] ~ arr [n] e troque -os com arr [1]; Na segunda vez, selecione os menores dados nos dados a serem classificados arr [2] ~ arr [n] e troque -os com r [2]; E assim por diante, selecione os menores dados nos dados a serem classificados arr [i] ~ arr [n] e troque -os com r [i] até que toda a classificação seja concluída.
c) Exemplo : Array int [] arr = {5,2,8,4,9,1};
---------------------------------------------------------
Primeira ordem: Dados originais: 528491
Dados mínimos 1, coloque 1 primeiro, ou seja, 1 e 5 posições de intercâmbio,
Resultado de classificação: 128495
---------------------------------------------------------
Segunda Ordem:
Os dados externos 1 {28495} são comparados, 2 é o menor,
Resultado de classificação: 128495
---------------------------------------------------------
A terceira ordem:
Dados diferentes de 1 e 2 são comparados {8495}, 4 são mínimos, 8 e 4 são trocados
Resultado de classificação: 124895
---------------------------------------------------------
A quarta ordem:
Outros dados que não 1, 2, 4 são comparados {895}, 5 são mínimos, 8 e 5 são trocados
Resultado de classificação: 124598
---------------------------------------------------------
A quinta ordem:
Outros dados que não 1, 2, 4, 5 são comparados, 8 são mínimos, 8 e 9 são trocados
Resultado de classificação: 124589
---------------------------------------------------------
Nota: O método para obter o menor número em cada ordem: para que o loop compare, defina uma terceira temperatura variável. Primeiro, compare os dois primeiros números, coloque o número menor em temp e use o Temp para comparar com os dados restantes. Se os dados menores que o temp aparecerão, use -os em vez dos dados originais no Temp. Para detalhes, referindo -se aos exemplos de código abaixo, acredito que você aprendeu a instrução FOR LOOP antes de aprender a classificar. Dessa maneira, será particularmente fácil de entender aqui.
Exemplo de código:
// selecione classificar classe pública Seleção Seleção {public static void main (string [] args) {int [] arr = {1,3,2,45,65,33,12}; System.out.println ("Antes do Exchange:"); para (int num: arr) {System.out.print (num+""); } // Selecione a otimização da classificação para (int i = 0; i <arr.length - 1; i ++) {// Classifique o I -th Order int k = i; for (int j = k+1; j <arr.length; j ++) {// selecione o menor registro se (arr [j] <arr [k]) {k = j; // Observe a localização do valor mínimo encontrado até agora}} // Após o final do loop interno, ou seja, depois de encontrar o número mínimo desse loop, depois troque se (i! = K) {// trocar a [i] e a [k] int temp = arr [i]; arr [i] = arr [k]; arr [k] = temp; }} System.out.println (); System.out.println ("Após a troca:"); para (int num: arr) {System.out.print (num+""); }}}Captura de tela do resultado em execução:
Selecione a complexidade do tempo de classificação: o número de comparações de tipos simples de seleção não tem nada a ver com a classificação inicial da sequência. Supondo que a sequência a ser classificada tenha n elementos, o número de comparações sempre será n (n-1)/2. O número de movimentos está relacionado à classificação inicial da sequência. Quando a sequência é positiva, o número de movimentos é o mínimo, que é 0. Quando a sequência é inversamente sequenciada, o maior número de movimentos é 3N (N-1)/2.
Portanto, em resumo, a complexidade do tempo de classificação simples é O (n2).