ordenação por inserção
TRANSCRIPT
![Page 1: Ordenação por inserção](https://reader030.vdocuments.com.br/reader030/viewer/2022020123/559b7dee1a28ab0e768b45b9/html5/thumbnails/1.jpg)
Ordenação Por Inserção
Funcionamento
Implementação
Estrutura de Dados
![Page 2: Ordenação por inserção](https://reader030.vdocuments.com.br/reader030/viewer/2022020123/559b7dee1a28ab0e768b45b9/html5/thumbnails/2.jpg)
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.
![Page 3: Ordenação por inserção](https://reader030.vdocuments.com.br/reader030/viewer/2022020123/559b7dee1a28ab0e768b45b9/html5/thumbnails/3.jpg)
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).
![Page 4: Ordenação por inserção](https://reader030.vdocuments.com.br/reader030/viewer/2022020123/559b7dee1a28ab0e768b45b9/html5/thumbnails/4.jpg)
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;
}
}
Implementação
![Page 5: Ordenação por inserção](https://reader030.vdocuments.com.br/reader030/viewer/2022020123/559b7dee1a28ab0e768b45b9/html5/thumbnails/5.jpg)
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.
![Page 6: Ordenação por inserção](https://reader030.vdocuments.com.br/reader030/viewer/2022020123/559b7dee1a28ab0e768b45b9/html5/thumbnails/6.jpg)
Vantagens Desvantagens
Fácil Implementação Grande número de movimentações
Algoritmo EstávelNão é eficiente quando o vetor está
ordenado inversamente
Eficiente com vetores de poucos
elementos
Não é recomendado para vetores
com muitos elementos