Algoritmo de clasificación (algoritmo de clasificación selectiva)


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:

inserte la descripción de la imagen aquí

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:
inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/2302_76339343/article/details/130919106
Recomendado
Clasificación