SlideShare uma empresa Scribd logo
Algoritmos de Ordenação:
Heapsort
Bruno Bitencourt Luiz
Estrutura de Dados – Prof. Marcelo Wendhausen. B.
Faculdade SATC
Criciúma, Novembro de 2015
Agenda
• Algoritmos;
• Algoritmos de Ordenação;
• Algoritmos de Ordenação por Seleção;
• Árvores Binárias;
• Heapsort;
• Vantagens X Desvantagens.
Algoritmos podem ser descritos como uma série de passos para
execução de uma tarefa. Este conjunto de passos deve ser finito.
O objetivo destes passos pode ser efetuar um cálculo de imposto,
um cadastro de cliente, exibir os resultados de uma busca, gerar
um relatório.
Algoritmos
A tarefa de extrair conteúdo relevante de uma coleção de dados, pode ser
trabalhosa em situações onde os dados não estão organizados. O objetivo
dos algoritmos de ordenação é colocar em uma determinada ordem total ou
parcialmente uma série de dados ou elementos. Esta ordenação pode ser
numérica ou lexicográfica.
Algoritmos de Ordenação
A ordenação por seleção utiliza-se da estratégia de passar sempre
o menor ou maior valor da lista para a primeira posição. O
segundo menor ou maior valor irá para segunda posição até o fim
da lista e assim sucessivamente. Os elementos já reordenados são
desconsiderados
Algoritmos de Ordenação por Seleção
De acordo com Goodrich (2013), o gargalo neste tipo
de algoritmo está em repetir a seleção de um segundo,
terceiro e assim sucessivamente menor número para
efetuar a ordenação. Onde se faz necessário percorrer
todos os elementos da lista.
Algoritmos de Ordenação por Seleção
Este tipo de algoritmo possui uma relação linear com o número de
elementos, o que corresponde a dizer que quanto maior o número de
elementos maior o tempo necessário para ordenação. A disposição dos dados
não influencia tanto no tempo para execução. Dados completamente
desorganizados serão ordenados com o mesmo custo.
Algoritmos de Ordenação por Seleção
Uma árvore binária é uma forma alternativa de
representar um vetor. Ela pode ou não possuir
elementos. Quando possui ao menos um elemento,
este pode possuir ponteiros para outros dois nós, um a
esquerda, outro a direita.
Árvores Binárias
Os elementos contidos são chamados de “nós”. “Pais”
são os nós que possuem nós abaixo, os nós que
possuem pais são chamados de “filhos”. Por fim, os
últimos nós que não possuem filhos são denominados
“folhas”.
Árvores Binárias
Para localizar o elemento pai i/2, o filho da esquerda 2i
e o filho da direita 2i + 1.
Árvores Binárias - Navegação
Criado em 1964 por Robert W. Floyd e aprimorado por
J.W.J Willians o Heapsort é um algoritmo de ordenação
do tipo ordenação por seleção.
Heapsort
Fonte:
http://www.computer.org/cms/Awards/images/medium/robertfloyd.jpg
Quando deseja-se ordenar os elementos de forma
crescente, cria-se um heap mínimo. Mantendo o maior
dado na raiz (por isso o conceito de árvore). Logo, para
uma ordenação decrescente, deve-se empregar o
heap-máximo, colocando o menor elemento na raiz.
Heapsort
Heapsort
Fonte: http://www.computer.org/cms/Awards/images/medium/robertfloyd.jpg
O algoritmo Heapsort pode ser resumido em:
selecionar o menor ou maior elemento, trocar com o
elemento presente na primeira posição. Essas
operações devem ser repetidas para todos os
elementos seguindo a forma (n - 1), (n - 2) e (n - N).
Heapsort
• Elementos já ordenados são desconsiderados;
• Para definir o elemento raiz, deve ser chamada a
função heapify;
Heapsort
A complexidade pode ser descrita por: O (n ln n), provando que
ele é estável para grandes quantidades de elementos, quando
comparado com outros algoritmos de ordenação como o Bubble
Sort e o Selection Sort, os quais a complexidade pode ser descrita
por O (n²).
Heapsort - Complexidade
Muitos sistemas operações e linguagens de programação fazem
uso do Heapsort para o gerenciamento de filas com prioridade,
pois o tempo de execução, estabilidade e o custo de memória em
situações onde os dados estão totalmente desordenados é
consistente com outras situações.
Heapsort – Utilização
• Elementos já ordenados são desconsiderados;
• Para definir o elemento raiz, deve ser chamada a
função heapify;
Heapsort
• Pior caso O (n ln n);
• Mais rápido que o Quicksort;
• Previsível.
Heapsort - Vantagens
• Construção constante da árvore.
Heapsort - Desvantagens
Execução de um Heapsort
Heapsort - Execução
Fonte: https://upload.wikimedia.org/wikipedia/commons/f/fe/Heap_sort_example.gif
Execução de um Heapsort em diferentes
cenários
Execução de um Heapsort
Aleatório Quase ordenado Inverso Repetidos
Fonte: http://www.sorting-algorithms.com/heap-sort
Perguntas?
Obrigado!
Referências
[1] GOODRICH, T. Michael et al. Data Structures & Algorithms: In Python. 1. ed. EUA:
Wiley, 2013.
[2] CORMEN, H. Thomas et al. Introduction to Algorithms. 3. ed. EUA: MIT Press,
2009.
[3] GUIMARÃES, Gleyser. O Algoritmo Heapsort. 2013. UFCG Pet. São Paulo.
Disponível em:
<http://www.dsc.ufcg.edu.br/~pet/jornal/maio2013/materias/historia_da_comput
acao.html>. Acesso em: 08 nov. 2015.
[4] FARIAS, Farias. Estrutura de Dados e Algoritmos – Aula 9. 2015. UFRJ Pet. Rio de
Janeiro. Disponível em: <http://www.cos.ufrj.br/~rfarias/cos121/aula_09.html>.
Acesso em: 08 nov. 2015.
Referências
[5] Heapsort. Sorting Algorithms. Disponível em: <http://www.sorting-
algorithms.com/heap-sort>. Acesso em: 08 nov. 2015.
[6] Heapsort. IME USP. Disponível em:
<http://www.ime.usp.br/~pf/algoritmos/aulas/hpsrt.html>. Acesso em: 08 nov.
2015.

Mais conteúdo relacionado

Mais procurados

Sistemas Operacionais - Aula 9 (Gerencia do Processador)
Sistemas Operacionais - Aula 9 (Gerencia do Processador)Sistemas Operacionais - Aula 9 (Gerencia do Processador)
Sistemas Operacionais - Aula 9 (Gerencia do Processador)
Leinylson Fontinele
 
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Leinylson Fontinele
 
Lógica binária, potas lógicas e circuitos lógicos
Lógica binária, potas lógicas e circuitos lógicosLógica binária, potas lógicas e circuitos lógicos
Lógica binária, potas lógicas e circuitos lógicos
Mauro Pereira
 
Fundamentos de Sistemas Operacionais - Aula 2 - Conceitos Iniciais
Fundamentos de Sistemas Operacionais - Aula 2 - Conceitos IniciaisFundamentos de Sistemas Operacionais - Aula 2 - Conceitos Iniciais
Fundamentos de Sistemas Operacionais - Aula 2 - Conceitos Iniciais
Helder Lopes
 
Introdução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmosIntrodução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmos
Nécio de Lima Veras
 
Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de OliveiraSistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Wellington Oliveira
 
Java: Composicao e Array List
Java: Composicao e Array ListJava: Composicao e Array List
Java: Composicao e Array List
Arthur Emanuel
 
Modelo orientado a objetos
Modelo orientado a objetosModelo orientado a objetos
Modelo orientado a objetos
Daiana de Ávila
 
Adversarial Search
Adversarial SearchAdversarial Search
Adversarial Search
Megha Sharma
 
Aula 2 introdução a sistemas distribuídos
Aula 2   introdução a sistemas distribuídosAula 2   introdução a sistemas distribuídos
Aula 2 introdução a sistemas distribuídos
Eduardo de Lucena Falcão
 
Introduction Artificial Intelligence a modern approach by Russel and Norvig 1
Introduction Artificial Intelligence a modern approach by Russel and Norvig 1Introduction Artificial Intelligence a modern approach by Russel and Norvig 1
Introduction Artificial Intelligence a modern approach by Russel and Norvig 1
Garry D. Lasaga
 
Heap Sort (project).ppt
Heap Sort (project).pptHeap Sort (project).ppt
Heap Sort (project).ppt
SudhaPatel11
 
Descrição formal de Casos de Uso
Descrição formal de Casos de UsoDescrição formal de Casos de Uso
Descrição formal de Casos de Uso
Natanael Simões
 
SI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosSI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas Distribuidos
Frederico Madeira
 
Algoritmos e Estrutura de Dados - Aula 02
Algoritmos e Estrutura de Dados - Aula 02Algoritmos e Estrutura de Dados - Aula 02
Algoritmos e Estrutura de Dados - Aula 02
thomasdacosta
 
Perception
PerceptionPerception
Perception
Yasir Khan
 
Apresentação data mining
Apresentação data miningApresentação data mining
Apresentação data mining
Nilton Rodrigues Pereira
 
Aula 1
Aula 1Aula 1
Aula 05 sistemas de numeração
Aula 05   sistemas de numeraçãoAula 05   sistemas de numeração
Aula 05 sistemas de numeração
Daniel Moura
 
Mer - Modelo Entidade Relacionamento
Mer - Modelo Entidade RelacionamentoMer - Modelo Entidade Relacionamento
Mer - Modelo Entidade Relacionamento
Rademaker Siena
 

Mais procurados (20)

Sistemas Operacionais - Aula 9 (Gerencia do Processador)
Sistemas Operacionais - Aula 9 (Gerencia do Processador)Sistemas Operacionais - Aula 9 (Gerencia do Processador)
Sistemas Operacionais - Aula 9 (Gerencia do Processador)
 
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
 
Lógica binária, potas lógicas e circuitos lógicos
Lógica binária, potas lógicas e circuitos lógicosLógica binária, potas lógicas e circuitos lógicos
Lógica binária, potas lógicas e circuitos lógicos
 
Fundamentos de Sistemas Operacionais - Aula 2 - Conceitos Iniciais
Fundamentos de Sistemas Operacionais - Aula 2 - Conceitos IniciaisFundamentos de Sistemas Operacionais - Aula 2 - Conceitos Iniciais
Fundamentos de Sistemas Operacionais - Aula 2 - Conceitos Iniciais
 
Introdução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmosIntrodução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmos
 
Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de OliveiraSistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
 
Java: Composicao e Array List
Java: Composicao e Array ListJava: Composicao e Array List
Java: Composicao e Array List
 
Modelo orientado a objetos
Modelo orientado a objetosModelo orientado a objetos
Modelo orientado a objetos
 
Adversarial Search
Adversarial SearchAdversarial Search
Adversarial Search
 
Aula 2 introdução a sistemas distribuídos
Aula 2   introdução a sistemas distribuídosAula 2   introdução a sistemas distribuídos
Aula 2 introdução a sistemas distribuídos
 
Introduction Artificial Intelligence a modern approach by Russel and Norvig 1
Introduction Artificial Intelligence a modern approach by Russel and Norvig 1Introduction Artificial Intelligence a modern approach by Russel and Norvig 1
Introduction Artificial Intelligence a modern approach by Russel and Norvig 1
 
Heap Sort (project).ppt
Heap Sort (project).pptHeap Sort (project).ppt
Heap Sort (project).ppt
 
Descrição formal de Casos de Uso
Descrição formal de Casos de UsoDescrição formal de Casos de Uso
Descrição formal de Casos de Uso
 
SI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosSI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas Distribuidos
 
Algoritmos e Estrutura de Dados - Aula 02
Algoritmos e Estrutura de Dados - Aula 02Algoritmos e Estrutura de Dados - Aula 02
Algoritmos e Estrutura de Dados - Aula 02
 
Perception
PerceptionPerception
Perception
 
Apresentação data mining
Apresentação data miningApresentação data mining
Apresentação data mining
 
Aula 1
Aula 1Aula 1
Aula 1
 
Aula 05 sistemas de numeração
Aula 05   sistemas de numeraçãoAula 05   sistemas de numeração
Aula 05 sistemas de numeração
 
Mer - Modelo Entidade Relacionamento
Mer - Modelo Entidade RelacionamentoMer - Modelo Entidade Relacionamento
Mer - Modelo Entidade Relacionamento
 

Semelhante a Algoritmos de ordenação - heapsort

Heap - Python
Heap - PythonHeap - Python
Heap - Python
Sérgio Souza Costa
 
Heap
HeapHeap
Fec
FecFec
AFRFB - TI - Jaime Correia
AFRFB - TI - Jaime CorreiaAFRFB - TI - Jaime Correia
AFRFB - TI - Jaime Correia
Walter Cunha
 
Aula 21
Aula 21Aula 21
Classes e Estrutura de Dados
Classes e Estrutura de DadosClasses e Estrutura de Dados
Classes e Estrutura de Dados
Tawã Lucindo Leal
 
ID3 Algorithm
ID3 AlgorithmID3 Algorithm
ID3 Algorithm
Michel Alves
 
Mapeamento Objeto Relacional em PHP com Outlet ORM
Mapeamento Objeto Relacional em PHP com Outlet ORMMapeamento Objeto Relacional em PHP com Outlet ORM
Mapeamento Objeto Relacional em PHP com Outlet ORM
Fábio Rehm
 
Slide Semana2 Rodrigo
Slide Semana2 RodrigoSlide Semana2 Rodrigo
Slide Semana2 Rodrigo
RodrigoPeresPires
 
Slide Share s2 Rodd
Slide Share s2 RoddSlide Share s2 Rodd
Slide Share s2 Rodd
RodrigoPeresPires
 
Slide Semana2 Rodrigo2
Slide Semana2 Rodrigo2Slide Semana2 Rodrigo2
Slide Semana2 Rodrigo2
RodrigoPeresPires
 
Ordenação de vetores
Ordenação de vetoresOrdenação de vetores
Ordenação de vetores
alfredtaddeus
 
Algorimos De Ordenação
Algorimos De OrdenaçãoAlgorimos De Ordenação
Algorimos De Ordenação
Brian Supra
 
Seminário - Java Collections
Seminário - Java CollectionsSeminário - Java Collections
Seminário - Java Collections
Ricardo Satin, MSc, ITIL, CSM, PMP
 
3.1 orientação objetos
3.1  orientação objetos3.1  orientação objetos
3.1 orientação objetos
Frank Coelho
 
Csharp fundamentals
Csharp fundamentalsCsharp fundamentals
Csharp fundamentals
Breno Queiroz
 
Rodando um Recomendador no Hadoop usando Mahout
Rodando um Recomendador no Hadoop usando MahoutRodando um Recomendador no Hadoop usando Mahout
Rodando um Recomendador no Hadoop usando Mahout
Ivanilton Polato
 
Hash e Btree
Hash e BtreeHash e Btree
Hash e Btree
Sérgio Souza Costa
 
Pged 04
Pged 04Pged 04
Pged 04
samuelthiago
 
Estrutura de dados
Estrutura de dadosEstrutura de dados
Estrutura de dados
UFT
 

Semelhante a Algoritmos de ordenação - heapsort (20)

Heap - Python
Heap - PythonHeap - Python
Heap - Python
 
Heap
HeapHeap
Heap
 
Fec
FecFec
Fec
 
AFRFB - TI - Jaime Correia
AFRFB - TI - Jaime CorreiaAFRFB - TI - Jaime Correia
AFRFB - TI - Jaime Correia
 
Aula 21
Aula 21Aula 21
Aula 21
 
Classes e Estrutura de Dados
Classes e Estrutura de DadosClasses e Estrutura de Dados
Classes e Estrutura de Dados
 
ID3 Algorithm
ID3 AlgorithmID3 Algorithm
ID3 Algorithm
 
Mapeamento Objeto Relacional em PHP com Outlet ORM
Mapeamento Objeto Relacional em PHP com Outlet ORMMapeamento Objeto Relacional em PHP com Outlet ORM
Mapeamento Objeto Relacional em PHP com Outlet ORM
 
Slide Semana2 Rodrigo
Slide Semana2 RodrigoSlide Semana2 Rodrigo
Slide Semana2 Rodrigo
 
Slide Share s2 Rodd
Slide Share s2 RoddSlide Share s2 Rodd
Slide Share s2 Rodd
 
Slide Semana2 Rodrigo2
Slide Semana2 Rodrigo2Slide Semana2 Rodrigo2
Slide Semana2 Rodrigo2
 
Ordenação de vetores
Ordenação de vetoresOrdenação de vetores
Ordenação de vetores
 
Algorimos De Ordenação
Algorimos De OrdenaçãoAlgorimos De Ordenação
Algorimos De Ordenação
 
Seminário - Java Collections
Seminário - Java CollectionsSeminário - Java Collections
Seminário - Java Collections
 
3.1 orientação objetos
3.1  orientação objetos3.1  orientação objetos
3.1 orientação objetos
 
Csharp fundamentals
Csharp fundamentalsCsharp fundamentals
Csharp fundamentals
 
Rodando um Recomendador no Hadoop usando Mahout
Rodando um Recomendador no Hadoop usando MahoutRodando um Recomendador no Hadoop usando Mahout
Rodando um Recomendador no Hadoop usando Mahout
 
Hash e Btree
Hash e BtreeHash e Btree
Hash e Btree
 
Pged 04
Pged 04Pged 04
Pged 04
 
Estrutura de dados
Estrutura de dadosEstrutura de dados
Estrutura de dados
 

Último

UFCD_10949_Lojas e-commerce no-code_índice.pdf
UFCD_10949_Lojas e-commerce no-code_índice.pdfUFCD_10949_Lojas e-commerce no-code_índice.pdf
UFCD_10949_Lojas e-commerce no-code_índice.pdf
Manuais Formação
 
1ª LEI DE OHN, CARACTERISTICAS IMPORTANTES.
1ª LEI DE OHN, CARACTERISTICAS IMPORTANTES.1ª LEI DE OHN, CARACTERISTICAS IMPORTANTES.
1ª LEI DE OHN, CARACTERISTICAS IMPORTANTES.
LeticiaRochaCupaiol
 
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Biblioteca UCS
 
OS elementos de uma boa Redação para o ENEM.pdf
OS elementos de uma boa Redação para o ENEM.pdfOS elementos de uma boa Redação para o ENEM.pdf
OS elementos de uma boa Redação para o ENEM.pdf
AmiltonAparecido1
 
AVALIAÇÃO DIAGNÓSTICA - 8º ANO 2024.pptx
AVALIAÇÃO DIAGNÓSTICA - 8º ANO 2024.pptxAVALIAÇÃO DIAGNÓSTICA - 8º ANO 2024.pptx
AVALIAÇÃO DIAGNÓSTICA - 8º ANO 2024.pptx
AntonioVieira539017
 
Leonardo da Vinci .pptx
Leonardo da Vinci                  .pptxLeonardo da Vinci                  .pptx
Leonardo da Vinci .pptx
TomasSousa7
 
PP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptx
PP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptxPP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptx
PP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptx
LuizHenriquedeAlmeid6
 
Slides Lição 11, Central Gospel, Os Mortos Em CRISTO, 2Tr24.pptx
Slides Lição 11, Central Gospel, Os Mortos Em CRISTO, 2Tr24.pptxSlides Lição 11, Central Gospel, Os Mortos Em CRISTO, 2Tr24.pptx
Slides Lição 11, Central Gospel, Os Mortos Em CRISTO, 2Tr24.pptx
LuizHenriquedeAlmeid6
 
Educação trabalho HQ em sala de aula uma excelente ideia
Educação  trabalho HQ em sala de aula uma excelente  ideiaEducação  trabalho HQ em sala de aula uma excelente  ideia
Educação trabalho HQ em sala de aula uma excelente ideia
joseanesouza36
 
O que é um Ménage a Trois Contemporâneo .pdf
O que é um Ménage a Trois Contemporâneo .pdfO que é um Ménage a Trois Contemporâneo .pdf
O que é um Ménage a Trois Contemporâneo .pdf
Pastor Robson Colaço
 
Aula 2 - Revisando o significado de fração - Parte 2.pptx
Aula 2 - Revisando o significado de fração - Parte 2.pptxAula 2 - Revisando o significado de fração - Parte 2.pptx
Aula 2 - Revisando o significado de fração - Parte 2.pptx
LILIANPRESTESSCUDELE
 
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdfUFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
Manuais Formação
 
Introdução à Sociologia: caça-palavras na escola
Introdução à Sociologia: caça-palavras na escolaIntrodução à Sociologia: caça-palavras na escola
Introdução à Sociologia: caça-palavras na escola
Professor Belinaso
 
Fernão Lopes. pptx
Fernão Lopes.                       pptxFernão Lopes.                       pptx
Fernão Lopes. pptx
TomasSousa7
 
Atividade letra da música - Espalhe Amor, Anavitória.
Atividade letra da música - Espalhe  Amor, Anavitória.Atividade letra da música - Espalhe  Amor, Anavitória.
Atividade letra da música - Espalhe Amor, Anavitória.
Mary Alvarenga
 
Vogais Ilustrados para alfabetização infantil
Vogais Ilustrados para alfabetização infantilVogais Ilustrados para alfabetização infantil
Vogais Ilustrados para alfabetização infantil
mamaeieby
 
Testes + soluções_Mensagens12 )11111.pdf
Testes + soluções_Mensagens12 )11111.pdfTestes + soluções_Mensagens12 )11111.pdf
Testes + soluções_Mensagens12 )11111.pdf
lveiga112
 
Leis de Mendel - as ervilhas e a maneira simples de entender.ppt
Leis de Mendel - as ervilhas e a maneira simples de entender.pptLeis de Mendel - as ervilhas e a maneira simples de entender.ppt
Leis de Mendel - as ervilhas e a maneira simples de entender.ppt
PatriciaZanoli
 
- TEMPLATE DA PRATICA - Psicomotricidade.pptx
- TEMPLATE DA PRATICA - Psicomotricidade.pptx- TEMPLATE DA PRATICA - Psicomotricidade.pptx
- TEMPLATE DA PRATICA - Psicomotricidade.pptx
LucianaCristina58
 
Reino-Vegetal plantas e demais conceitos .pptx
Reino-Vegetal plantas e demais conceitos .pptxReino-Vegetal plantas e demais conceitos .pptx
Reino-Vegetal plantas e demais conceitos .pptx
CarinaSantos916505
 

Último (20)

UFCD_10949_Lojas e-commerce no-code_índice.pdf
UFCD_10949_Lojas e-commerce no-code_índice.pdfUFCD_10949_Lojas e-commerce no-code_índice.pdf
UFCD_10949_Lojas e-commerce no-code_índice.pdf
 
1ª LEI DE OHN, CARACTERISTICAS IMPORTANTES.
1ª LEI DE OHN, CARACTERISTICAS IMPORTANTES.1ª LEI DE OHN, CARACTERISTICAS IMPORTANTES.
1ª LEI DE OHN, CARACTERISTICAS IMPORTANTES.
 
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
 
OS elementos de uma boa Redação para o ENEM.pdf
OS elementos de uma boa Redação para o ENEM.pdfOS elementos de uma boa Redação para o ENEM.pdf
OS elementos de uma boa Redação para o ENEM.pdf
 
AVALIAÇÃO DIAGNÓSTICA - 8º ANO 2024.pptx
AVALIAÇÃO DIAGNÓSTICA - 8º ANO 2024.pptxAVALIAÇÃO DIAGNÓSTICA - 8º ANO 2024.pptx
AVALIAÇÃO DIAGNÓSTICA - 8º ANO 2024.pptx
 
Leonardo da Vinci .pptx
Leonardo da Vinci                  .pptxLeonardo da Vinci                  .pptx
Leonardo da Vinci .pptx
 
PP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptx
PP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptxPP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptx
PP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptx
 
Slides Lição 11, Central Gospel, Os Mortos Em CRISTO, 2Tr24.pptx
Slides Lição 11, Central Gospel, Os Mortos Em CRISTO, 2Tr24.pptxSlides Lição 11, Central Gospel, Os Mortos Em CRISTO, 2Tr24.pptx
Slides Lição 11, Central Gospel, Os Mortos Em CRISTO, 2Tr24.pptx
 
Educação trabalho HQ em sala de aula uma excelente ideia
Educação  trabalho HQ em sala de aula uma excelente  ideiaEducação  trabalho HQ em sala de aula uma excelente  ideia
Educação trabalho HQ em sala de aula uma excelente ideia
 
O que é um Ménage a Trois Contemporâneo .pdf
O que é um Ménage a Trois Contemporâneo .pdfO que é um Ménage a Trois Contemporâneo .pdf
O que é um Ménage a Trois Contemporâneo .pdf
 
Aula 2 - Revisando o significado de fração - Parte 2.pptx
Aula 2 - Revisando o significado de fração - Parte 2.pptxAula 2 - Revisando o significado de fração - Parte 2.pptx
Aula 2 - Revisando o significado de fração - Parte 2.pptx
 
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdfUFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
 
Introdução à Sociologia: caça-palavras na escola
Introdução à Sociologia: caça-palavras na escolaIntrodução à Sociologia: caça-palavras na escola
Introdução à Sociologia: caça-palavras na escola
 
Fernão Lopes. pptx
Fernão Lopes.                       pptxFernão Lopes.                       pptx
Fernão Lopes. pptx
 
Atividade letra da música - Espalhe Amor, Anavitória.
Atividade letra da música - Espalhe  Amor, Anavitória.Atividade letra da música - Espalhe  Amor, Anavitória.
Atividade letra da música - Espalhe Amor, Anavitória.
 
Vogais Ilustrados para alfabetização infantil
Vogais Ilustrados para alfabetização infantilVogais Ilustrados para alfabetização infantil
Vogais Ilustrados para alfabetização infantil
 
Testes + soluções_Mensagens12 )11111.pdf
Testes + soluções_Mensagens12 )11111.pdfTestes + soluções_Mensagens12 )11111.pdf
Testes + soluções_Mensagens12 )11111.pdf
 
Leis de Mendel - as ervilhas e a maneira simples de entender.ppt
Leis de Mendel - as ervilhas e a maneira simples de entender.pptLeis de Mendel - as ervilhas e a maneira simples de entender.ppt
Leis de Mendel - as ervilhas e a maneira simples de entender.ppt
 
- TEMPLATE DA PRATICA - Psicomotricidade.pptx
- TEMPLATE DA PRATICA - Psicomotricidade.pptx- TEMPLATE DA PRATICA - Psicomotricidade.pptx
- TEMPLATE DA PRATICA - Psicomotricidade.pptx
 
Reino-Vegetal plantas e demais conceitos .pptx
Reino-Vegetal plantas e demais conceitos .pptxReino-Vegetal plantas e demais conceitos .pptx
Reino-Vegetal plantas e demais conceitos .pptx
 

Algoritmos de ordenação - heapsort

  • 1. Algoritmos de Ordenação: Heapsort Bruno Bitencourt Luiz Estrutura de Dados – Prof. Marcelo Wendhausen. B. Faculdade SATC Criciúma, Novembro de 2015
  • 2. Agenda • Algoritmos; • Algoritmos de Ordenação; • Algoritmos de Ordenação por Seleção; • Árvores Binárias; • Heapsort; • Vantagens X Desvantagens.
  • 3. Algoritmos podem ser descritos como uma série de passos para execução de uma tarefa. Este conjunto de passos deve ser finito. O objetivo destes passos pode ser efetuar um cálculo de imposto, um cadastro de cliente, exibir os resultados de uma busca, gerar um relatório. Algoritmos
  • 4. A tarefa de extrair conteúdo relevante de uma coleção de dados, pode ser trabalhosa em situações onde os dados não estão organizados. O objetivo dos algoritmos de ordenação é colocar em uma determinada ordem total ou parcialmente uma série de dados ou elementos. Esta ordenação pode ser numérica ou lexicográfica. Algoritmos de Ordenação
  • 5. A ordenação por seleção utiliza-se da estratégia de passar sempre o menor ou maior valor da lista para a primeira posição. O segundo menor ou maior valor irá para segunda posição até o fim da lista e assim sucessivamente. Os elementos já reordenados são desconsiderados Algoritmos de Ordenação por Seleção
  • 6. De acordo com Goodrich (2013), o gargalo neste tipo de algoritmo está em repetir a seleção de um segundo, terceiro e assim sucessivamente menor número para efetuar a ordenação. Onde se faz necessário percorrer todos os elementos da lista. Algoritmos de Ordenação por Seleção
  • 7. Este tipo de algoritmo possui uma relação linear com o número de elementos, o que corresponde a dizer que quanto maior o número de elementos maior o tempo necessário para ordenação. A disposição dos dados não influencia tanto no tempo para execução. Dados completamente desorganizados serão ordenados com o mesmo custo. Algoritmos de Ordenação por Seleção
  • 8. Uma árvore binária é uma forma alternativa de representar um vetor. Ela pode ou não possuir elementos. Quando possui ao menos um elemento, este pode possuir ponteiros para outros dois nós, um a esquerda, outro a direita. Árvores Binárias
  • 9. Os elementos contidos são chamados de “nós”. “Pais” são os nós que possuem nós abaixo, os nós que possuem pais são chamados de “filhos”. Por fim, os últimos nós que não possuem filhos são denominados “folhas”. Árvores Binárias
  • 10. Para localizar o elemento pai i/2, o filho da esquerda 2i e o filho da direita 2i + 1. Árvores Binárias - Navegação
  • 11. Criado em 1964 por Robert W. Floyd e aprimorado por J.W.J Willians o Heapsort é um algoritmo de ordenação do tipo ordenação por seleção. Heapsort Fonte: http://www.computer.org/cms/Awards/images/medium/robertfloyd.jpg
  • 12. Quando deseja-se ordenar os elementos de forma crescente, cria-se um heap mínimo. Mantendo o maior dado na raiz (por isso o conceito de árvore). Logo, para uma ordenação decrescente, deve-se empregar o heap-máximo, colocando o menor elemento na raiz. Heapsort
  • 14. O algoritmo Heapsort pode ser resumido em: selecionar o menor ou maior elemento, trocar com o elemento presente na primeira posição. Essas operações devem ser repetidas para todos os elementos seguindo a forma (n - 1), (n - 2) e (n - N). Heapsort
  • 15. • Elementos já ordenados são desconsiderados; • Para definir o elemento raiz, deve ser chamada a função heapify; Heapsort
  • 16. A complexidade pode ser descrita por: O (n ln n), provando que ele é estável para grandes quantidades de elementos, quando comparado com outros algoritmos de ordenação como o Bubble Sort e o Selection Sort, os quais a complexidade pode ser descrita por O (n²). Heapsort - Complexidade
  • 17. Muitos sistemas operações e linguagens de programação fazem uso do Heapsort para o gerenciamento de filas com prioridade, pois o tempo de execução, estabilidade e o custo de memória em situações onde os dados estão totalmente desordenados é consistente com outras situações. Heapsort – Utilização
  • 18. • Elementos já ordenados são desconsiderados; • Para definir o elemento raiz, deve ser chamada a função heapify; Heapsort
  • 19. • Pior caso O (n ln n); • Mais rápido que o Quicksort; • Previsível. Heapsort - Vantagens
  • 20. • Construção constante da árvore. Heapsort - Desvantagens
  • 21. Execução de um Heapsort
  • 22. Heapsort - Execução Fonte: https://upload.wikimedia.org/wikipedia/commons/f/fe/Heap_sort_example.gif
  • 23. Execução de um Heapsort em diferentes cenários
  • 24. Execução de um Heapsort Aleatório Quase ordenado Inverso Repetidos Fonte: http://www.sorting-algorithms.com/heap-sort
  • 27. Referências [1] GOODRICH, T. Michael et al. Data Structures & Algorithms: In Python. 1. ed. EUA: Wiley, 2013. [2] CORMEN, H. Thomas et al. Introduction to Algorithms. 3. ed. EUA: MIT Press, 2009. [3] GUIMARÃES, Gleyser. O Algoritmo Heapsort. 2013. UFCG Pet. São Paulo. Disponível em: <http://www.dsc.ufcg.edu.br/~pet/jornal/maio2013/materias/historia_da_comput acao.html>. Acesso em: 08 nov. 2015. [4] FARIAS, Farias. Estrutura de Dados e Algoritmos – Aula 9. 2015. UFRJ Pet. Rio de Janeiro. Disponível em: <http://www.cos.ufrj.br/~rfarias/cos121/aula_09.html>. Acesso em: 08 nov. 2015.
  • 28. Referências [5] Heapsort. Sorting Algorithms. Disponível em: <http://www.sorting- algorithms.com/heap-sort>. Acesso em: 08 nov. 2015. [6] Heapsort. IME USP. Disponível em: <http://www.ime.usp.br/~pf/algoritmos/aulas/hpsrt.html>. Acesso em: 08 nov. 2015.