Ordem de inserção

O que é ordenação por inserção?

Ordenação por inserção é um algoritmo de ordenação de dados que pode ser usado para classificar uma série de elementos. Como o nome indica, o algoritmo funciona inserindo elementos em uma ordem pré-definida. A ordenação por inserção é muito eficiente para usar com pequenas quantidades de dados e tem um tempo de execução linear (O(n)).

Como funciona?

A ordenação por inserção funciona percorrendo a sequência de elementos e inserindo-os na ordem apropriada. O algoritmo inicia com o primeiro elemento da série como o elemento já ordenado. Em seguida, o próximo elemento é comparado com o elemento ordenado e, se for menor, é inserido na posição correta. Este processo continua até que todos os elementos sejam inseridos na série.

Exemplos

A seguir, um exemplo de ordenação por inserção:

  • Primeiro passo: O primeiro elemento da sequência, 4, é considerado como já ordenado.
  • Segundo passo: O segundo elemento, 2, é menor que o primeiro elemento (4), então é inserido na posição correta, à frente de 4.
  • Terceiro passo: O terceiro elemento, 6, é maior que o primeiro elemento (4), então é inserido na posição correta, à frente de 6.
  • Quarto passo: O quarto elemento, 1, é menor que o segundo elemento (2), então é inserido na posição correta, à frente de 2.
  • Quinto passo: O quinto elemento, 5, é maior que o terceiro elemento (6), então é inserido na posição correta, à frente de 5.

Após estes passos, a série estará ordenada por inserção: 1, 2, 4, 5, 6.

Vantagens

Algumas das principais vantagens do algoritmo de ordenação por inserção são:

  • É simples de implementar e entender.
  • É eficiente para usar com pequenas quantidades de dados.
  • É muito mais rápido do que algoritmos de ordenação complexos, como o Quick Sort.
  • É um algoritmo de ordenação estável, o que significa que os elementos com o mesmo valor são mantidos na mesma posição relativa.

Desvantagens

Embora a ordenação por inserção seja eficiente para usar com pequenas quantidades de dados, ela não é tão eficiente para grandes quantidades de dados. Além disso, o algoritmo tem um tempo de execução linear, o que significa que o tempo de execução aumenta linearmente com o tamanho da série.

Referências