Directorio de artículos
1. ¿Qué es el tipo de selección?
La clasificación por selección (Selección> ordenar) es un algoritmo de clasificación simple e intuitivo. Principio de funcionamiento : el elemento más pequeño (más grande) se selecciona de los elementos de datos que se van a ordenar por primera vez , se almacena en la posición inicial de la secuencia y luego se encuentra el elemento más pequeño (más grande) de los elementos restantes sin clasificar , y luego colocado al final de la secuencia ordenada. Y así sucesivamente, hasta que el número de todos los elementos de datos a ordenar sea cero. La clasificación por selección es un método de clasificación inestable.
( Enciclopedia Baidu )
La clasificación por selección es un algoritmo de clasificación relativamente simple y fácil de entender que no requiere espacio de almacenamiento adicional.
Nota: Debido a que su complejidad de tiempo es demasiado grande, no se recomienda usarlo para ordenar .
1. La complejidad del algoritmo es la siguiente:
- Complejidad del tiempo O (n ^ 2)
- Complejidad espacial O (1)
2. Principio del algoritmo
1. Visualización de animación:
2. Hablar palabras humanas:
Este algoritmo realizará N búsquedas en la matriz a ordenar, y cada vez encontrará el valor más pequeño (más grande) en la matriz a ordenar y lo colocará detrás de los datos previamente ordenados.
Resumen y código de máquina real (versión C)
Visualización 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;
}
Visualización de resultados de ejecución: