Método de Ordenação: InsertionSort

12
Método de Ordenação: InsertionSort Prof(o): Alexandre Parra

description

Método de Ordenação: InsertionSort. Prof(o): Alexandre Parra. Principais Métodos. Classificação por Trocas Classificação por Seleção Classificação por Inserção. Classificação por Inserção. - PowerPoint PPT Presentation

Transcript of Método de Ordenação: InsertionSort

Page 1: Método de Ordenação: InsertionSort

Método de Ordenação: InsertionSort

Prof(o): Alexandre Parra

Page 2: Método de Ordenação: InsertionSort

Principais Métodos

Classificação por Trocas

Classificação por Seleção

Classificação por Inserção

Page 3: Método de Ordenação: InsertionSort

Classificação por Inserção

Caracteriza-se por percorrer o conjunto de elementos da esquerda para a direita e à medida que avança vai deixando os elementos mais à esquerda ordenados.

Principais Algoritmos: InsertionSort (Ordenação por Inserção)

ShellSort

Page 4: Método de Ordenação: InsertionSort

InsertionSort (Ordem Crescente) Princípio de classificação (sobre n

elementos) A partir do 2º elemento do conjunto de dados:

1) Buscar onde o elemento deve ficar no sub-vetor a esquerda de modo que o sub-vetor fique ordenado. (Obs: Não é a posição definitiva);

2) A busca citada acima pode ser sequencial ou binária. Após ordenar o sub-vetor a esquerda, avançar UMA posição no sub-vetor a direita (não ordenado) e repetir o passo anterior;

3) O processo de ordenação termina quando todos os elementos a partir do 2º elemento forem visitados e inseridos ordenadamente no sub-vetor à esquerda.

Page 5: Método de Ordenação: InsertionSort

ExercícioSuponha que se deseja classificar crescentemente o

vetor abaixo utilizando o método InsertionSort:

9 25 10 18 5 7 15 3

Simule as iterações necessárias para a classificação.

Page 6: Método de Ordenação: InsertionSort

Exemplo (ordenação crescente)

1 2 3 4 5 6 7 8

9 25 10 18 5 7 15 3

1 2 3 4 5 6 7 8

1ª 9 25 10 18 5 7 15 3 1ª posição 2ª 9 25 10 18 5 7 15 3 2ª posição 3ª 9 10 25 18 5 7 15 3 3ª posição 4ª 9 10 18 25 5 7 15 3 4ª posição 5ª 5 9 10 18 25 7 15 3 5ª posição 6ª 5 7 9 10 18 25 15 3 6ª posição 7ª 5 7 9 10 15 18 25 3 7ª posição 8ª 3 5 7 9 10 15 18 25 8ª posição (Vetor FINAL)

Iteração Vetor INICIAL Parcialmente ordenado até a posição

Page 7: Método de Ordenação: InsertionSort

InsertionSort (Seqüencial) - Análise de Desempenho (1)

Pior caso: Quando o vetor se encontra na ordem inversa a desejada. O(n2)

Melhor caso: Quando o vetor se encontra ordenado. Somente n – 1 comparações. O(n)

Caso Médio: Os demais casos exceto os casos do pior e melhor caso. O(n2)

Page 8: Método de Ordenação: InsertionSort

InsertionSort (Busca Binária) – Análise de Desempenho (2)

Pior caso: Quando o vetor está ordenado ou desordenado. O(n2)

Melhor caso: Quando o local onde será inserido o elemento no sub-vetor ordenado é “próximo do centro”. O(n)

Caso Médio: Os demais casos exceto os casos do pior e melhor caso. O(n2)

Page 9: Método de Ordenação: InsertionSort

Site sobre ordenação http://math.hws.edu/TMCM/java/xSortLab/

BubbleSort QuickSort SelectionSort InsertionSort (Busca Seqüencial) MergeSort

Page 10: Método de Ordenação: InsertionSort

Exercício1) Aplicar o método InsertionSort (Busca Binária e

Seqüencial) para classificar o vetor [25 48 37 12 57 86 33 92] na ordem crescente.

2) Quantas iterações são necessárias para ordenar o vetor ?

3) Qual a complexidade do método SelectionSort nos casos: melhor, pior e caso médio ?

4) Classifique o método InsertionSort quanto:

- A Estabilidade. Justifique sua resposta.

- A Localidade. Justifique sua resposta.

Page 11: Método de Ordenação: InsertionSort

InsertSort (Busca Binária) – Análise de Desempenho (3)

Análise do Desempenho quanto a localização o número de comparações para localizar a posição

de um elemento, por pesquisa binária, em uma tabela de k entradas é:

para k de 1 até n - 1, o total de comparações para localizar as n - 1 posições das chaves a serem inseridas:

n-1

log 2 i = log 2 1 + log 2 2 + log 2 3 + ... + log 2 (n - 1 )

i=1 = log 2 (1*2*3*...*n - 1) = log 2 ( n - 1 ) !

log2 k

Page 12: Método de Ordenação: InsertionSort

Análise de Complexidade no Gráfico

f(n) = n2

f(n) = log2(n!)

f(n) = n