Algoritmo de classificação (algoritmo de classificação seletiva)


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:

insira a descrição da imagem aqui

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:
insira a descrição da imagem aqui

Acho que você gosta

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