TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Análise e Complexidade do algoritmo Heap Sort

Por:   •  8/4/2018  •  Relatório de pesquisa  •  1.204 Palavras (5 Páginas)  •  1.019 Visualizações

Página 1 de 5

[pic 1][pic 2]

        

Thiago Henrique Ribeiro Munich – 3628

Análise e complexidade do algoritmo Heap Sort

        

Estudo e pesquisa referente à disciplina SIN 213 - Projeto de Algoritmos, ministrada pelo professor Pedro Moisés de Souza, com objetivo de mostrar os diferentes casos e tempos de execução dos algoritmos listados acima.

Rio Paranaíba – MG                                                                                                                                 2017

RESUMO

           A ordenação ou classificação de dados consiste em receber um montante de dados e organiza-los em ordem crescente e/ou decrescente, a fim de utiliza-los posteriormente. Essa ordenação tem o objetivo de facilitar as buscas e pesquisas por um elemento em um conjunto ordenado. Na computação existe uma série de algoritmos de ordenação, sendo eles de diferentes comportamentos e complexidades, sendo assim, devemos nos atentar ao problema e só depois escolher qual método usar para soluciona-lo.

Sumário

INTRODUÇÃO        4

HEAP SORT        5

Análise de Custo        5

Tabela de Desempenho – Heapsort        6

Gráfico de Desempenho – Heapsort        6

Gráfico de Desempenho Comparativo – Heapsort  X Quicksort Médio        7

Conclusão Heapsort        7

REFERÊNCIAS BIBLIOGRÁFICAS        8


INTRODUÇÃO

           Imagine uma lista telefônica cheia de contatos e que você precisa encontrar um deles em específico, agora imagine se estes contatos estiverem totalmente desordenados e não houvesse nenhum método de busca disponível, seria bem trabalhoso encontrar o contato desejado, certo? Para solucionar problemas como estes nós utilizamos os métodos de ordenação.

Na computação existe uma série de algoritmos que utilizam diferentes técnicas de ordenação para organizar um conjunto de dados, eles são conhecidos como Métodos de Ordenação ou Algoritmos de Ordenação.

Os métodos de ordenação se classificam em:

  • Ordenação Interna: onde todos os elementos a serem ordenados cabem na memória principal e qualquer registro pode ser imediatamente acessado.
  • Ordenação Externa: onde os elementos a serem ordenados não cabem na memória principal e os registros são acessados sequencialmente ou em grandes blocos.

HEAP SORT

           O algoritmo Heapsort faz parte dos algoritmos de ordenação por seleção, é um algoritmo que tem um ótimo desempenho, sendo este melhor quando os conjuntos são ordenados aleatoriamente, tem um consumo razoável de memória, mas o melhor é que seu desempenho no pior caso é praticamente igual ao desempenho no médio caso, ou seja, O(nlogn). O Heapsort utiliza uma estrutura de dados chamada “heap” para ordenar os elementos à medida que os mesmos vão sendo inseridos no vetor. A “heap” pode ser representada melhor como uma arvore binária, para ordem decrescente construímos a “heap-mínima”, onde o menor valor fica na raiz, já na ordem crescente temos o inverso disso, o maior elemento ocupa a posição da raiz, sendo chamado de “heap-máximo”.

Análise de Custo

          Inicialmente o algoritmo não parece eficiente, pois as chaves são movimentadas várias vezes. Entretanto o procedimento max_heapify gasta certa de O(logN) operações no pior caso.
        Portanto, o Heapsort gasta O(nlogn) no pior caso. O Heapsort não é recomendado para arquivos com poucos registros, por causa do tempo necessário para construir o heap, mas continuará sendo O(nlogn) para qualquer tamanho de entrada.
                

        

[pic 3]

                                

Tabela de Desempenho – Heapsort

Tabela de desempenho do algoritmo Insertion Sort

Tamanho da entrada

10

100

1000

10000

100000

1000000

Crescente

0

0

0

0

1 segundo

1 segundo

Decrescente

0

0

0,002 segundos

0,159 segundos

1,65 segundos

3,1 segundos

Aleatório

0

0

0,001 segundos

0,079 segundos

2,2 segundos

4,8 segundos

                                    Tabela 1 – Relação tamanho da entrada e tempo gasto para execução.

Na tabela acima podemos acompanhar o desempenho do algoritmo Heapsort de acordo com as entradas do usuário, sendo estas variantes entre 10 e 1.000.000 e o tempo de execução medido em segundos.

...

Baixar como (para membros premium)  txt (6.3 Kb)   pdf (222.6 Kb)   docx (85.9 Kb)  
Continuar por mais 4 páginas »
Disponível apenas no TrabalhosGratuitos.com