David Menotti Estruturas de Dados I DECOM – UFOP

Slides:



Advertisements
Apresentações semelhantes
Organização e Gerência de Arquivos - OGA
Advertisements

Ordenação de Dados em Memória
Aula T-09 – BCC202 Listas (Parte 1) Túlio Toffolo www. decom. ufop
Estruturas de Dados Marcio Gonçalves.
ESTRUTURA DE DADOS LES.
Linguagem de Programação IX Métodos de Ordenação
UNIVERSIDADE LUTERANA DO BRASIL COMUNIDADE EVANGÉLICA LUTERANA SÃO PAULO Reconhecida pela Portaria Ministerial nº 681 de 07/12/89 – DOU de 11/12/89 Campus.
Algoritmos de Ordenação
1 Complexidade de Algoritmos Complexidade de pior caso Complexidade de melhor caso de uso bem menos freqüente em algumas situações específicas Complexidade.
1 MergeSort Seja uma lista A de n elementos. O algoritmo consiste das seguintes fases Dividir A em 2 sub-listas de tamanho n/2 Conquistar: ordenar cada.
Shell Sort.
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
Medida do Tempo de Execução de um Programa
David Menotti Estruturas de Dados I DECOM – UFOP
Pesquisa em Memória Primária
Pesquisa em Árvores Digitais
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
Pesquisa em Memória Primária - Hashing
Medida do Tempo de Execução de um Programa
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
David Menotti Estruturas de Dados I DECOM – UFOP
HeapSort Filas de Prioridade – Heap
Pesquisa em Memória Primária – Árvores de Busca
Medida do Tempo de Execução de um Programa
David Menotti Estruturas de Dados I DECOM – UFOP
Pesquisa em Memória Primária – Árvores de Busca
Medida do Tempo de Execução de um Programa David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP.
Medida do Tempo de Execução de um Programa
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
Pesquisa em Memória Primária
David Menotti Estruturas de Dados I DECOM – UFOP
Ordenação Facilitar e aumentar a eficiência das operações de pesquisa sobre esses dados Pode ser crescente ou decrescente A seqüência de entrada, normalmente,
Ordenação Facilitar e aumentar a eficiência das operações de pesquisa sobre esses dados Pode ser crescente ou decrescente A seqüência de entrada, normalmente,
Classificação (Ordenação) de dados
AED – Algoritmos e Estruturas de Dados
Algoritmos Escher.
Listas Encadeadas.
5COP096 Teoria da Computação
Algoritmos de Ordenação
Algoritmos de Ordenação
Insertion Sort.
ALGORITMOS E ESTRUTURAS DE DADOS
Algoritmos de ordenação
Algoritmos e Estruturas de Dados II
Pesquisa em Memória Primária
Algoritmos e Estruturas de Dados II
Comparação entre os métodos de ordenação
Algoritmo de Ordenação
Ordenação em memória primária
Desempenho, Método de Shell, Quicksort
Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação
Aula 03 – BCC202 Análise de Algoritmos (Parte 1) Túlio Toffolo www
Estruturas de Dados Aula 9: Listas (parte 1)
Ceça Moraes – Introdução à Programação SI1
Algoritmos de Ordenação
© 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 1 © 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 1 © 2011 Pearson Prentice.
Introdução à complexidade de algoritmos Luiz Gonzaga da Silveira Junior.
Métodos de Ordenação.
CLASSIFICAÇÃO DE DADOS
ATAL – Prof. Jorge Figueiredo Ordenação AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação.
Classificação Ordenação de Dados
Programação II Laboratório II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo - Transparências baseadas nos originais da Prof.
Ordenação Professor Paulo Gomide 27 de outubro de 2015.
Classificação (Ordenação) de dados
Classificação (Ordenação) de dados. Roteiro Contextualização e definições sobre Classificação Métodos de Classificação de Dados.
Curso Programadores de Informática
Universidade Federal de Alagoas – Campus Arapiraca
Transcrição da apresentação:

David Menotti Estruturas de Dados I DECOM – UFOP Ordenação – Shellsort David Menotti Estruturas de Dados I DECOM – UFOP

ShellSort Proposto por Shell em 1959. É uma extensão do algoritmo de ordenação por inserção. Problema com o algoritmo de ordenação por inserção: Troca itens adjacentes para determinar o ponto de inserção. São efetuadas n - 1 comparações e movimentações quando o menor item está na posição mais à direita no vetor. O método de Shell contorna este problema permitindo trocas de registros distantes um do outro.

ShellSort Os itens separados de h posições são rearranjados. Todo h-ésimo item leva a uma seqüência ordenada. Tal seqüência é dita estar h-ordenada.

Exemplo O R D E N A h = 4 h = 2 h = 1

ShellSort Exemplo de utilização: Quando h = 1, Shellsort corresponde ao algoritmo de inserção.

ShellSort Como escolher o valor de h: Sequência para h: h(s) = 1, para s = 1

ShellSort Como escolher o valor de h: Sequência para h: h(s) = 1, para s = 1 h(s) = 3h(s - 1) + 1, para s > 1

ShellSort Como escolher o valor de h: Sequência para h: h(s) = 1, para s = 1 h(s) = 3h(s - 1) + 1, para s > 1 A sequência para h corresponde a 1, 4, 13, 40, 121, 364, 1.093, 3.280, ... Knuth (1973, p. 95) mostrou experimentalmente que esta seqüência é difícil de ser batida por mais de 20% em eficiência.

ShellSort Como escolher o valor de h: h =└ log3 (2n+1) ┘

ShellSort void Shellsort (Item* A, int n) { int i, j; int h = 1; Item aux; do h = h * 3 + 1; while (h < n); do h /= 3; /* h = ( h – 1 ) / 3 /* for( i = h ; i < n ; i++ ) aux = A[i]; j = i; while (A[j – h].Chave > aux.Chave) A[j] = A[j – h]; j -= h; if (j < h) break; } A[j] = aux; } while (h != 1);

ShellSort A implementação do Shellsort não utiliza registros sentinelas. Seriam necessários h registros sentinelas, uma para cada h-ordenação.

ShellSort Análise A razão da eficiência do algoritmo ainda não é conhecida. Ninguém ainda foi capaz de analisar o algoritmo. A sua análise contém alguns problemas matemáticos muito difíceis. A começar pela própria sequência de incrementos. O que se sabe é que cada incremento não deve ser múltiplo do anterior.

ShellSort Análise Conjecturas referente ao número de comparações para a sequência de Knuth: Conjectura 1 : C(n) = O(n1,25) Conjectura 2 : C(n) = O(n (ln n)2 )

ShellSort Vantagens: Desvantagens: Shellsort é uma ótima opção para arquivos de tamanho moderado. Sua implementação é simples e requer uma quantidade de código pequena. Desvantagens: O tempo de execução do algoritmo é sensível à ordem inicial do arquivo. O método não é estável,