[Estrutura dos dados e algoritmo] Seleção Classificação

Tipo de seleção:
complexidade do tempo: O (n ^ 2)
complexidade do espaço: O (1)

Teste de desempenho:
Comparado com a classificação de bolhas:

Classifique por 10k números aleatórios:

选择排序        :       0.109496 s
冒泡排序优化版  :       0.432141 s

10k quase ordenou números ordenados:

选择排序        :       0.112428 s
冒泡排序优化版  :       0.018859 s

Ideia básica:
selecione o menor do intervalo a ser classificado e coloque-o após o intervalo já solicitado.

void selectSort(int arr[], int n) {
    for (int i = 0; i < n; ++i) {

        int min_index = i;
        for (int j = i + 1; j < n; ++j) {
            if (arr[j] < arr[min_index]) {
                min_index = j;
            }
        }

        swap(arr[i], arr[min_index]);
    }
}

EOF

98 artigos originais foram publicados · 91 elogios · mais de 40.000 visualizações

Acho que você gosta

Origin blog.csdn.net/Hanoi_ahoj/article/details/105473481
Recomendado
Clasificación