Algoritmos de busca e ordenação - Ordenação Bolha e Ordenação de Seleção Direta
Método de Ordenação: InsertionSort
description
Transcript of Método de Ordenação: InsertionSort
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
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
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.
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.
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
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)
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)
Site sobre ordenação http://math.hws.edu/TMCM/java/xSortLab/
BubbleSort QuickSort SelectionSort InsertionSort (Busca Seqüencial) MergeSort
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.
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
Análise de Complexidade no Gráfico
f(n) = n2
f(n) = log2(n!)
f(n) = n