Diretório de artigos
1. O que é classificação por seleção?
A classificação por seleção (Seleção> classificação) é um algoritmo de classificação simples e intuitivo. Princípio de funcionamento : O menor (maior) elemento é selecionado dos elementos de dados a serem classificados pela primeira vez , armazenado na posição inicial da sequência e, em seguida , o menor (maior) elemento é encontrado entre os elementos não classificados restantes e, em seguida, colocado no final da sequência classificada. E assim por diante, até que o número de todos os elementos de dados a serem classificados seja zero. A classificação por seleção é um método de classificação instável.
( Enciclopédia Baidu )
A classificação por seleção é um algoritmo de classificação relativamente simples e fácil de entender que não requer espaço de armazenamento adicional.
Nota: Devido à sua complexidade de tempo ser muito grande, não é recomendado usá-lo para classificar .
1. A complexidade do algoritmo é a seguinte:
- Complexidade de tempo O (n ^ 2)
- Complexidade espacial O(1)
2. Princípio do algoritmo
1. Exibição de animação:
2. Falar palavras humanas:
Este algoritmo realizará N pesquisas no array a ser classificado, e cada vez encontrará o menor (maior) valor no array a ser classificado e o colocará atrás dos dados previamente classificados.
Resumo e código de máquina real (versão C)
Exibição de código:
#include <stdio.h>
int main()
{
int arr[10] = {
10,9,8,7,6,5,4,3,2,1 }; //待排序数组
int tmp = 0; //用来存储找到的最小值的下标
//选择排序
for (int i = 0; i < 10; i++)
{
tmp = i;
for (int j = i; j < 10; j++) //寻找待排序数据中的最小(大)值
{
if (arr[j] < arr[tmp])
{
tmp = j;
}
}
int p = arr[tmp];
arr[tmp] = arr[i];
arr[i] = p;
}
for (int i = 0; i < 10; i++)
{
printf("%d ", arr[i]);
}
return 0;
}
Exibição do resultado em execução: