Dificuldade ★☆☆
2 minutos de Leitura 🕒
O Insertion Sort (Ordenação por Inserção) é um algoritmo de ordenação que funciona de forma similar ao modo como algumas pessoas ordenam cartas de um baralho, quando estão jogando. Ao adicionar uma nova carta a uma mão de cartas ordenadas, o jogador compara a nova carta com todas as demais cartas em sua mão, para determinar o ponto de inserção adequado.
A
que inicialmente contém apenas o primeiro elemento do arranjo original.B
que inicialmente contém todos os demais elementos.B
. Denote este elemento x
.A
o ponto onde x
deve ser inserido, da direita para a esquerda.A
que estão à direita do ponto de inserção.x
na posição de inserção encontrada no sub-arranjo A
.B
não estiver vazio, volte ao Passo 2.A
, que contém os elementos da arranjo original ordenados.O pior caso para o algoritmo Insertion Sort ocorre quando a lista de elementos está ordenada de forma inversa. Nessa situação, o algoritmo te um custo quadrático de comparações e de trocas, em função do número de elementos n
a serem ordenados:
O(n²)
comparaçõesO(n²)
trocasO melhor caso para o algoritmo Insertion Sort ocorre quando a lista de elementos já está ordenada. Nessa situação, o algoritmo tem um custo linear de comparações e um custo constante de trocas, em função do número de elementos n
a serem ordenados:
O(n)
comparaçõesO(1)
trocasVeja o código completo no GitHub.