Comparação entre os métodos de ordenação

Slides:



Advertisements
Apresentações semelhantes
Aula T-09 – BCC202 Listas (Parte 1) Túlio Toffolo www. decom. ufop
Advertisements

Katia S. Guimarães QUICKSORT Katia S. Guimarães
Linguagem de Programação IX Métodos de Ordenação
Exercício Exercício. Considere um algoritmo sequencial que busca um elemento em uma lista não ordenada a) Qual é a complexidade de tempo deste algoritmo.
Algoritmos de Ordenação
Mineração de Dados Avaliação de Classificadores
Profa. Dra. Ana Paula Appel
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.
Pesquisa em Memória Primária
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 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 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
Avaliação de Desempenho Planejamento de Experimentos 2 Aula 2 Marcos José Santana Regina Helena Carlucci Santana Universidade de São Paulo Instituto de.
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
Algoritmos Escher.
Classificação de dados por Troca: QuickSort
Método de Ordenação: InsertionSort
Introdução a Análise de Complexidade de Algoritmos
Crescimento de Funções
Algoritmos Genéticos - Capítulo 10 Representação Numérica
Complexidade de Algoritmos
5COP096 Teoria da Computação
Algoritmos de Ordenação
Algoritmos de Ordenação
Insertion Sort.
© 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 1 © 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 1 © 2011 Pearson Prentice.
Algoritmos de ordenação
Simulador de Algoritmos de Ordenação
Algoritmos e Estruturas de Dados II
Pesquisa em Memória Primária
Algoritmos e Estruturas de Dados II
Ordenação em memória primária
Desempenho, Método de Shell, Quicksort
Complexidade de algoritmos e Classificação (Ordenação) de dados
Aula 03 – BCC202 Análise de Algoritmos (Parte 1) Túlio Toffolo www
Busca com informação e exploração
Aula T06 – BCC202 Análise de Algoritmos (Parte 4) Túlio Toffolo
Estruturas de Dados e Ordenação
Ceça Moraes – Introdução à Programação SI1
1 A COMPUTAÇÃO MODERNA Valdemar W. Setzer Depto. de Ciência da Computação da USP
QuickSort Dividir: A[p…r] é particionado (reorganizado) em dois subvetores não vazios A[p…q] e A[q+1…r] tal que cada elemento de A[p…q] é menor ou igual.
SISTEMAS OPERACIONAIS I
Sistemas Operacionais
Introdução à complexidade de algoritmos Luiz Gonzaga da Silveira Junior.
Métodos de Ordenação.
Analise de Algoritmos e Notação Assintótica
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
Berilhes Borges Garcia Algoritmos Uma ferramenta para resolver um problema de computação bem- especificado (O espírito da computação) Exemplo: ordenação.
ORDENAÇÃO EM TEMPO LINEAR
Amostragem Sistemática
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.
Comportamento Assintótico
Transcrição da apresentação:

Comparação entre os métodos de ordenação Algoritmos e Estruturas de Dados II

Número de comparações Método Complexidade Inserção O(n2) Seleção Bolha Shellsort O(n lg(n)2) Quicksort O(n lg(n)) Heapsort Radixsort O(kn)

Tempo de execução O método que levou menos tempo real para executar recebeu o valor 1 e os outros receberam valores relativos Elementos em ordem aleatória:

Tempo de execução Elementos em ordem crescente

Tempo de execução Elementos em ordem decrescente

Observações Observações sobre os métodos: 1. Shellsort, quicksort e heapsort têm a mesma ordem de grandeza para arranjos de até 30 mil elementos 2. O quicksort é o mais rápido para todos os tamanhos aleatórios experimentados 3. A relação heapsort/quicksort se mantém constante para todos os tamanhos de entrada 4. A relação shellsort/quicksort aumenta com o tamanho da entrada 5. Para arquivos pequenos (500 elementos), o shellsort é mais rápido que o heapsort (e vice versa) 6. Inserção é o método mais rápido para qualquer tamanho se os elementos estão ordenados (e vice versa) 7. Entre os algoritmos de custo quadrático, o inserção é melhor para entradas aleatórias

Influência da ordem inicial dos elementos 1. O shellsort é bastante sensível à ordenação ascendente ou descendente da entrada 2. Em arquivos do mesmo tamanho, o shellsort executa mais rápido para arquivos ordenados 3. Em arquivos do mesmo tamanho, o quicksort executa mais rápido para arquivos ordenados 4. O heapsort não depende da ordenação da entrada

Inserção É o mais interessante para arquivos com menos do que 20 elementos O método é estável Possui comportamento melhor do que o método da bolha que também é estável Sua implementação é tão simples quanto as implementações do bolha e seleção Para arquivos já ordenados, o método é O(n) O custo é linear para adicionar alguns elementos a um arquivo já ordenado

Seleção É vantajoso quanto ao número de movimentos de registros, que é O(n) Deve ser usado para arquivos com elementos muito grandes, desde que o número de elementos a ordenar seja pequeno

Shellsort Bom para ordenar um número moderado de elementos Quando encontra um arquivo parcialmente ordenado trabalha menos

Quicksort É o algoritmo mais eficiente que existe para uma grande variedade de situações O algoritmo é recursivo, o que demanda uma pequena quantidade de memória adicional Pior caso realiza O(n2) operações O principal cuidado a ser tomado é com relação à escolha do pivô A escolha do elemento do meio do arranjo melhora o desempenho quando o arquivo está total ou parcialmente ordenado O pior caso tem uma probabilidade muito pequena de ocorrer quando os elementos forem aleatórios Geralmente se usa a mediana de uma amostra de três elementos para evitar o pior caso Usar inserção em partições pequenas melhora desempenho significativamente

Heapsort É um método de ordenação elegante e eficiente Não necessita de nenhuma memória adicional Executa sempre em tempo proporcional a O(n lg(n)) Aplicações que não podem tolerar eventuais variações no tempo esperado de execução devem usar o heapsort