Cada tempo classificando análise de algoritmos complexidade e apresentação

1. Visão geral do algoritmo de ordenação

Por qualquer algoritmo de chave comparação, a complexidade de tempo não é melhor do que NLGN. Atribuir uma classificação não algoritmo de chave comparação.
Aqui Insert Picture Descrição

2. troca de classificação (bubble sort)

algoritmos Introdução

A comutação de chamada, a sequência é baseada sobre o resultado da comparação gravado em duas teclas para trocar as duas posições registadas na sequência, característica triagem troca é: o movimento chave-popa de uma sequência de gravação grande, o mais tecla gravação pequena é movido para a porção da frente da sequência.

vazio swapsort (int a [])
{
para (int i = 1; i <= n; i ++) {
para (intj = i + 1; j <= n; j ++) {
if (a [i]> um [j ]) {
int temp = a [i];
um [i] = uma [j];
um [j] = temperatura;
}
}
}
}

complexidade de tempo

Para-i executado n vezes, na primeira passagem para-i, para-j executado n-1 vezes, durante a segunda passagem para-i, para-j executa n-2 vezes, ..., e, finalmente, na for-i quando mais uma vez, para-j 0 tempos de execução.
Portanto, T (n) = (n- 1) + (n-2) + ... + 1 + 0 = (n-1) * n / 2.

3. merge sort

Algoritmo introduzido
i.e. a sequência a ser classificados em várias subsequências, cada subsequência é ordenada. E então ordenados toda a sub-sequências para uma sequência ordenada.
Aqui Insert Picture Descrição
complexidade de tempo
para o melhor pior e média caso, o problema terá que quebrar a escala de até 1, então a mesma complexidade de tempo dos três.
   T (n) = 2T (n / 2) + θ (n) n> 1 quando
   T (n) = θ (1 ) n = 1
analisados por vídeos árvore recursiva aparente T (n) = + cnlgn cn , complexidade vez é o grau de θ (NLGN), é claro, também o (NLGN).

4. Breve Sort

algoritmos Introdução

Breve tipo proposto por CAR Hoare em 1960. A idéia básica é: uma viagem ao ordenar os dados a serem classificados em duas partes independentes, a parte onde todos os dados do que a outra parte de todos os dados para ser pequeno, então este método de dados para as duas partes rápido separadamente triagem, a triagem de todo o processo pode ser de forma recursiva, a fim de alcançar os dados inteiros numa sequência ordenada.

O tipo de inserção

Algoritmo introduzido
ordenação por inserção é uma simples ordenação por inserção, a idéia básica é: o registro a ser classificadas de acordo com seu tamanho por um valor de chave é inserida em uma seqüência já ordenadas ordenado, até que todos os registros em acabada até agora, obter uma nova seqüência ordenada.

Colina triagem (inserção de pacotes)

Shell tipo é o objecto de pressionar o pacote de gravação em incrementos, a utilização da inserção directa espécie cada algoritmo de classificação; Com incremento é gradualmente reduzida, mais e mais palavras-chave cada compreendendo, quando reduzida a um incremento, todo o arquivo é dividido em apenas um set, o algoritmo irá terminar. O método proposto em 1959 devido à DLShell nomeado.
Este método é essencialmente um método de inserção de pacotes.

6. Selecção Sort

Algoritmo introduzido
primeiro elemento de dados a ser seleccionado a partir do mínimo ordenada (ou no máximo) de um elemento armazenado na posição de partida da sequência, e em seguida, para encontrar a partir dos elementos restantes, não triados para um mínimo de elementos (grandes), e, em seguida, colocar para o fim da sequência ordenada. E assim por diante, até que todo o número de elementos de dados a serem classificados é zero
FUNC SelectionSort (os nums [] Int32) {
comprimento: = len (os nums)
para I: = 0; I <comprimento; i ++ {
min: = I
para J : = i + 1; J <comprimento; J ++ {.
Se o nums [j] <os nums [min] {
mínimo = J
}
}
Temp: = nUMS [eu]
as nums [I] = o nums [min]
os nums [min] = TEMP
}
fmt.Println (os nums)
}

complexidade de tempo
uma vez que apenas a troca de um fundo para-i, n-1, de modo que os tempos de comutação no total, e cada uma das necessidades para a troca de 3 vezes designados de modo a que em todos os casos (pior) complexidade de tempo é 3 (n-1).

7 heap de classificação

Algoritmo introduzido
heapsort (Inglês: heapsort) refere-se a um algoritmo de ordenação tal estrutura de dados uma concebido para uso montão. Uma pilha é estrutura de árvore binária quase completas, propriedades e satisfazer depositado: ou chave índice que é um nó filho é sempre menor do que (ou superior a) seu nó pai.

Heapsort vazio (int n, montão & H) {
Makeheap (N, H);
Removekeys (N, H, SH);
}

Na verdade, o algoritmo é a pilha constante construção, e depois remover o nó raiz. Toda vez que a remoção do nó de raiz é o máximo, então o equivalente a sequenciação completa. A figura seguinte é um exemplo.
Aqui Insert Picture Descrição

8. atribuir uma classificação (radix sort)

Algoritmo introduziu
não comparar algoritmos de chave de classe.

Por exemplo, os seguintes números são de base 10, a primeira fila do lado esquerdo em primeiro lugar, para uma pilha diferente; em seguida, em segundo lugar no lado esquerdo, e, finalmente, em terceiro lugar, à esquerda. Então, depois de verificar a mediana é o número de colunas e ordenada. Se a espera também é possível a partir da extrema direita, similar à verdade.

Aqui Insert Picture Descrição

Publicado 21 artigos originais · ganhou elogios 18 · vista 1455

Acho que você gosta

Origin blog.csdn.net/zephyr_wang/article/details/104264554
Recomendado
Clasificación