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.