120 likes | 205 Views
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.
E N D
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ício Suponha 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) Iteração Vetor INICIAL Parcialmente ordenado até a posição 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 31ª posição 2ª925 10 1857 15 32ª posição 3ª9102518 5715 3 3ª posição 4ª9101825 5 7 1534ª posição 5ª5 91018257 15 3 5ª posição 6ª5 7 9 101825153 6ª posição 7ª5 7 9 101518253 7ª posição 8ª3 5 7 9 10 15 18 25 8ª posição (Vetor FINAL)
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ício 1) 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
f(n) = n2 f(n) = log2(n!) f(n) = n Análise de Complexidade no Gráfico