1 / 12

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.

jack
Download Presentation

Método de Ordenação: InsertionSort

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Principais Métodos • Classificação por Trocas • Classificação por Seleção • Classificação por Inserção

  3. 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

  4. 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.

  5. 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.

  6. 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)

  7. 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)

  8. 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)

  9. Site sobre ordenação • http://math.hws.edu/TMCM/java/xSortLab/ • BubbleSort • QuickSort • SelectionSort • InsertionSort (Busca Seqüencial) • MergeSort

  10. 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.

  11. 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

  12. f(n) = n2 f(n) = log2(n!) f(n) = n Análise de Complexidade no Gráfico

More Related