ordenacao heapsort

2340 palavras 10 páginas
HeapSort
Estrutura de Dados II
Jairo Francisco de Souza

HeapSort


Algoritmo criado por John Williams (1964)



Complexidade O(NlogN) no pior e médio caso







Mesmo tendo a mesma complexidade no caso médio que o
QuickSort, o HeapSort acaba sendo mais lento que algumas boas implementações do QuickSort
Porém, além de ser mais rápido no pior caso que o
QuickSort, necessita de menos memória para executar
QuickSort necessita de um vetor O(logN) para guardar as estruturas enquanto o HeapSort não necessita de um vetor auxiliar. HeapSort








Utiliza a abordagem proposta pelo SelectionSort
O SelectionSort pesquisa entre os n elementos o que precede todos os outros n-1 elementos
Para ordenar em ordem ascendente, o heapsort põe o maior elemento no final do array e o segundo maior antes dele, etc.
O heapsort começa do final do array pesquisando os maiores elementos, enquanto o selectionsort começa do início do array pesquisando os menores.

HeapSort
Para ordenar, o heapsort usa um Heap
Heap é uma árvore binária com as seguintes propriedades: O valor de cada nó não é menor que os valores armazenados em cada filho
A árvore é perfeitamente balanceada e as folhas no último nível estão todas nas posições mais a esquerda. HeapSort
Exemplo de um heap:

HeapSort
Elementos no heap não estão perfeitamente ordenados. Apenas sabe-se que o maior elemento está no nó raiz e que, para cada nó, todos os seus descendentes não são maiores que os elementos na raiz.

HeapSort
Tenta-se evitar a utilização real de uma árvore.
A idéia é utilizar a abordagem de heap representando uma árvore como um array:

HeapSort


Por que usar um heap é importante?




a pergunta "qual o maior elemento de vetor?" pode ser respondida instantaneamente: o maior elemento do vetor é v[1]; se o valor de v[1] for alterado, o heap pode ser restabelecido muito rapidamente: a operação de heapfy não demora mais

Relacionados

  • Avaliação empírica de desempenho dos algoritmos de ordenação: quicksort, mergesort e heapsort
    2840 palavras | 12 páginas
  • trabalho paa
    1695 palavras | 7 páginas
  • Estudante
    1297 palavras | 6 páginas
  • Documents
    10560 palavras | 43 páginas
  • equacoes diferenciais
    821 palavras | 4 páginas
  • Métodos de Ordenação
    10225 palavras | 41 páginas
  • Ordenação
    455 palavras | 2 páginas
  • Heap sort
    533 palavras | 3 páginas
  • Métodos de ordenação
    747 palavras | 3 páginas
  • Métodos de ordenação
    1918 palavras | 8 páginas