Pergunta  
 
Rede de conhecimento computador >> Pergunta >> PC Resolução de problemas >> Content
O que é algoritmo de classificação por inserção [explicado com exemplo prático]
# Algoritmo de classificação por inserção

Visão geral


A classificação por inserção é um algoritmo de classificação simples que funciona inserindo cada elemento de um array em sua posição correta no array. Ele começa com um array classificado vazio e depois percorre o array de entrada, inserindo cada elemento em sua posição correta no array classificado. Este processo é repetido até que todo o array de entrada seja classificado.

Etapas do algoritmo


Aqui está o algoritmo passo a passo para classificação por inserção:

1. Comece com um array classificado vazio.
2. Itere pela matriz de entrada.
3. Para cada elemento da matriz de entrada, insira-o em sua posição correta na matriz classificada.
4. Para inserir um elemento, compare-o com cada elemento do array ordenado, começando pelo primeiro elemento.
5. Se o elemento for menor que o elemento atual na matriz classificada, insira-o antes do elemento atual.
6. Se o elemento for maior que o elemento atual na matriz classificada, continue comparando com o próximo elemento na matriz classificada.
7. Repita as etapas 4 a 6 até que o elemento seja inserido em sua posição correta na matriz classificada.
8. Repita as etapas 2 a 7 para cada elemento da matriz de entrada.

Exemplo


Vamos considerar a seguinte matriz de entrada:

```
[5, 2, 8, 3, 1]
```

As etapas a seguir mostram como o algoritmo de classificação por inserção classificaria essa matriz:

1. Comece com um array classificado vazio.

```
[]
```

2. Itere pela matriz de entrada.

```
[5]
```

3. Para cada elemento da matriz de entrada, insira-o em sua posição correta na matriz classificada.

```
[5]
```

4. Para inserir o elemento 2, compare-o com cada elemento do array ordenado, começando pelo primeiro elemento.

```
[5, 2]
```

5. Como 2 é menor que 5, insira-o antes do elemento atual.

```
[2, 5]
```

6. Itere pela matriz de entrada.

```
[2, 5, 8]
```

7. Para cada elemento da matriz de entrada, insira-o em sua posição correta na matriz classificada.

```
[2, 5, 8]
```

8. Para inserir o elemento 3, compare-o com cada elemento do array ordenado, começando pelo primeiro elemento.

```
[2, 3, 5, 8]
```

9. Como 3 é menor que 5, insira-o antes do elemento atual.

```
[2, 3, 5, 8]
```

10. Itere pela matriz de entrada.

```
[2, 3, 5, 8, 1]
```

11. Para cada elemento da matriz de entrada, insira-o em sua posição correta na matriz classificada.

```
[1, 2, 3, 5, 8]
```

12. Para inserir o elemento 1, compare-o com cada elemento do array ordenado, começando pelo primeiro elemento.

```
[1, 2, 3, 5, 8]
```

13. Como 1 é menor que 2, insira-o antes do elemento atual.

```
[1, 2, 3, 5, 8]
```

14. A matriz classificada está completa.

```
[1, 2, 3, 5, 8]
```

Complexidade de tempo


A complexidade de tempo da classificação por inserção é O (n ^ 2), onde n é o comprimento da matriz de entrada. Isso significa que o tempo de execução da classificação por inserção aumenta quadraticamente à medida que o tamanho da matriz de entrada aumenta. A classificação por inserção tem melhor desempenho quando a matriz de entrada já está quase classificada; nesse caso, sua complexidade de tempo é O (n).

Complexidade Espacial


A ordenação por inserção requer espaço auxiliar O(1), pois só precisa armazenar uma única variável (o elemento atual que está sendo inserido) além do array de entrada.

Vantagens e Desvantagens


A classificação por inserção tem algumas vantagens e desvantagens:

Vantagens:

* Simples de implementar
* Eficiente para matrizes pequenas ou matrizes quase classificadas
* Algoritmo de classificação estável (mantém a ordem relativa de elementos iguais)

Desvantagens:

* Não é eficiente para grandes arrays
* Complexidade de tempo quadrática (O(n^2))
* Não é um algoritmo de classificação local (requer espaço adicional)

Conclusão


A classificação por inserção é um algoritmo de classificação simples e eficiente que funciona bem para matrizes pequenas ou quase ordenadas. Sua simplicidade e estabilidade fazem dele um algoritmo útil para fins educacionais e para aplicações especializadas. No entanto, não é o algoritmo de classificação mais eficiente para matrizes grandes, onde algoritmos mais eficientes, como quicksort ou merge sort, deveriam ser usados.

Anterior :

Próximo :
  Os artigos relacionados
·Como carregar o sistema operacional em um Dell Inspiron…
·Revisão social do Path:é legítimo e seguro? 
·Como redefinir a área de trabalho Depois de um Trojan …
·Tecnologia de orientação - artigos de instruções, g…
·O que são informações de instalação do InstallShie…
·Como alterar a fonte padrão no Microsoft Word? 
·Como recuperar informações de conta de um Bater 
·Como tocar música pelo microfone 
·Como gerenciar aplicativos de suspensão no telefone Sa…
·O que fazer se o seu Nintendo Switch estiver carregando…
  Artigos em destaque
·Como fazer com que e-mails matadores promovam seu negó…
·Como faço para mudar minha conta do Xbox One de crianç…
·Tecnologia de orientação - artigos de instruções, g…
·Como excluir uma conta audível 
·Como solucionar um Tela azul XP 
·Como converter WMA para Doc 
·Como excluir uma conta Nintendo Switch 
·Como desativar a mensagem Security Center no Windows Vi…
·Como solucionar problemas de Avarias tela de computador…
·Como corrigir o LCD de um laptop quando ele fica escuro…
Cop e direita © Rede de conhecimento computador http://ptcomputador.com Todos os Direitos Reservados