1. Estrutura de Dados
Ordenação Por Inserção
Funcionamento
Implementação
2. O que é?
Este é o método de ordenação mais rápido
entre os métodos básicos.
Ordena um vetor da esquerda para a
direita, por ordem crescente ou decrescente.
À medida que o vetor vai sendo percorrido ele
deixa seus elementos à esquerda ordenados.
3. Funcionamento
Percorre um vetor, sempre a partir do primeiro
índice desordenado (inicialmente o 2º
elemento), e em seguida procura inseri-lo na
posição correta, comparando-o com o seu(s)
anterior(s) e trocando-os de lugar enquanto ele
for menor que seu(s) precedente(s).
4. Implementação
void insercao(int v[], int tam)
{
int j, i, temp;
for (i=1;i<tam;i++)
{
//guarda o elemento que esta verificando
temp = v[i];
//verificando os elementos anteriores a posicao i
for(j= i-1;v[j]>temp && j>=0;j--)
{
v[j+1] = v[j];
}
//insere o elemento na posicao correta (ordenada) ate i.
v[j+1] = temp;
}
}
5. Eficiência
Melhor caso: quando os elementos já estão
ordenados.
Caso médio: quando parte dos elementos já
está ordenada.
Pior caso: quando os elementos estão
ordenados em ordem inversa.
6. Vantagens Desvantagens
Fácil Implementação Grande número de movimentações
Não é eficiente quando o vetor está
Algoritmo Estável
ordenado inversamente
Eficiente com vetores de poucos Não é recomendado para vetores
elementos com muitos elementos