SlideShare uma empresa Scribd logo
1 de 25
Binary Heap
Marcos Castro
Binary Heap
• Uma Binary Heap é uma árvore binária completa ou quase completa.
• Exemplo de árvore binária completa:
Todos os níveis (exceto possivelmente o
último) estão completamente preenchidos.
2
Binary Heap
• Tem-se a Min-Heap e Max-Heap.
• Min-Heap:
• O valor de cada nó é maior ou igual do que o valor do seu pai, o menor valor
está na raiz.
• Max-Heap:
• O valor de cada nó é menor ou igual do que o valor do seu pai, o maior valor
está na raiz.
• Os elementos estão dispostos na heap de forma que o pai sempre
tem prioridade maior ou igual do que a prioridade de seus filhos.
3
Binary Heap
• Cada posição do array é considerado pai de outras duas posições que
são os filhos.
• A posição “i” passa a ser pai das posições:
• 2i + 1 (filho à esquerda)
• 2i + 2 (filho à direita)
4
Binary Heap
• Para inserir um novo elemento, basta inserir na primeira posição vaga
do array, ou seja, ao final do array.
• Inserir ao final do array quer dizer que inicialmente o novo elemento
é uma folha.
• Feito isso, precisa-se levar o elemento inserido para a sua respectiva
posição na heap de acordo com a sua prioridade (“subir” na árvore).
5
Binary Heap
• Vamos construir uma Min-Heap.
• Exemplo: 12, 7, 6, 10, 8, 20
• Inserindo o 12...
12
6
Array: 12
Binary Heap
• Exemplo: 12, 7, 6, 10, 8, 20
• Inserindo o 7...
12
7
Violou a propriedade da min-heap!
7
Array: 12, 7
Binary Heap
• Exemplo: 12, 7, 6, 10, 8, 20
• Corrigindo:
12
7
7
12
8
Array: 7, 12
Binary Heap
• Exemplo: 12, 7, 6, 10, 8, 20
• Inserindo o 6...
7
12 6
Violou a propriedade da min-heap, pois o 6
é menor do que o seu pai: 7.
9
Array: 7, 12, 6
Binary Heap
• Exemplo: 12, 7, 6, 10, 8, 20
• Corrigindo...
6
12 7
10
Array: 6, 12, 7
Binary Heap
• Exemplo: 12, 7, 6, 10, 8, 20
• Inserindo o 10...
6
12 7
10 Violou a propriedade da min-heap, pois
o 10 é menor que o seu pai: 12.
11
Array: 6, 12, 7, 10
Binary Heap
• Exemplo: 12, 7, 6, 10, 8, 20
• Corrigindo...
6
10 7
12
12
Array: 6, 10, 7, 12
Binary Heap
• Exemplo: 12, 7, 6, 10, 8, 20
• Inserindo o 8...
6
10 7
12 8
Violou a propriedade da min-heap, pois
o 8 é menor que o seu pai: 10.
13
Array: 6, 10, 7, 12, 8
Binary Heap
• Exemplo: 12, 7, 6, 10, 8, 20
• Corrigindo...
6
8 7
12 10
14
Array: 6, 8, 7, 12, 10
Binary Heap
• Exemplo: 12, 7, 6, 10, 8, 20
• Inserindo o 20...
6
8 7
12 10 20
15Array: 6, 8, 7, 12, 10, 20
Binary Heap
• Exemplo: 12, 7, 6, 10, 8, 20
6
8 7
12 10 20
16Array: 6, 8, 7, 12, 10, 20
Binary Heap
• Para remover, remove-se o elemento que está no topo da heap, ou
seja, no início do array.
• Copia-se o elemento do final para o início do array.
• Leva-se o elemento que foi colocado no topo da heap para a sua
respectiva posição de acordo com a sua prioridade.
17
Binary Heap
• Removendo o 6...
6
8 7
12 10 20
18Array: 6, 8, 7, 12, 10, 20
Binary Heap
• Removendo o 6...
8 7
12 10 20 O 20 é o último elemento do array.
19Array: 8, 7, 12, 10, 20
Binary Heap
• Removendo o 6...
8 7
12 10
20
20Array: 20, 8, 7, 12, 10
Binary Heap
• Removendo o 6...
8 7
12 10
20
Troca o 20 com o 7 para refazer a heap.
21
Binary Heap
• Heap refeita!
8 20
12 10
7
22
Array: 7, 8, 20, 12, 10
Binary Heap - Custo
• A inserção e remoção é O(logN).
• Tanto na remoção como na inserção, precisa-se verificar e corrigir (se
necessário) violações das propriedades da heap.
23
Binary Heap
• Simulação da Binary Heap:
• http://visualgo.net/heap.html (max heap)
• https://www.cs.usfca.edu/~galles/visualization/Heap.html (min heap)
24
Contato
mcastrosouza@live.com
www.twitter.com/mcastrosouza
www.geeksbr.com
http://youtube.com/c/marcoscastrosouza
http://marcoscastro.me
https://github.com/marcoscastro
25

Mais conteúdo relacionado

Destaque

Listas, tuplas, conjuntos e dicionários
Listas, tuplas, conjuntos e dicionáriosListas, tuplas, conjuntos e dicionários
Listas, tuplas, conjuntos e dicionáriosMarcos Castro
 
Programação dinâmica
Programação dinâmicaProgramação dinâmica
Programação dinâmicaMarcos Castro
 
Busca em largura - BFS
Busca em largura - BFSBusca em largura - BFS
Busca em largura - BFSMarcos Castro
 
Problema do Caixeiro Viajante
Problema do Caixeiro ViajanteProblema do Caixeiro Viajante
Problema do Caixeiro ViajanteMarcos Castro
 
Metaheurística Simulated Annealing
Metaheurística Simulated AnnealingMetaheurística Simulated Annealing
Metaheurística Simulated AnnealingMarcos Castro
 
Computação Evolucionária - Seleção por roleta
Computação Evolucionária - Seleção por roletaComputação Evolucionária - Seleção por roleta
Computação Evolucionária - Seleção por roletaMarcelo Maia
 
FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto
FIT e IFSP - Arquitetura (evolucionária) e o papel do arquitetoFIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto
FIT e IFSP - Arquitetura (evolucionária) e o papel do arquitetoLeandro Daniel
 
Introdução aos Algoritmos Genéticos
Introdução aos Algoritmos GenéticosIntrodução aos Algoritmos Genéticos
Introdução aos Algoritmos GenéticosNorton Guimarães
 
Agrupamento (clustering) - K-Means
Agrupamento (clustering) - K-MeansAgrupamento (clustering) - K-Means
Agrupamento (clustering) - K-MeansMarcos Castro
 
Visão Geral, Ferramentas e Aplicações dos Algoritmos Genéticos
Visão Geral, Ferramentas e Aplicações dos Algoritmos GenéticosVisão Geral, Ferramentas e Aplicações dos Algoritmos Genéticos
Visão Geral, Ferramentas e Aplicações dos Algoritmos GenéticosNorton Guimarães
 
IA Redes Neurais Artificiais
IA Redes Neurais ArtificiaisIA Redes Neurais Artificiais
IA Redes Neurais Artificiaisrafael.joi
 
CURSO TÉCNICO PARA SECRETÁRIO ESCOLAR.
CURSO TÉCNICO PARA SECRETÁRIO ESCOLAR. CURSO TÉCNICO PARA SECRETÁRIO ESCOLAR.
CURSO TÉCNICO PARA SECRETÁRIO ESCOLAR. Antônio Fernandes
 
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do CursoLeandro de Castro
 
2012: Tutorial sobre Sistemas de Recomendação para E-commerce
2012: Tutorial sobre Sistemas de Recomendação para E-commerce2012: Tutorial sobre Sistemas de Recomendação para E-commerce
2012: Tutorial sobre Sistemas de Recomendação para E-commerceLeandro de Castro
 
2010: Computação Natural - Uma Jornada Ilustrada
2010: Computação Natural - Uma Jornada Ilustrada2010: Computação Natural - Uma Jornada Ilustrada
2010: Computação Natural - Uma Jornada IlustradaLeandro de Castro
 
Algoritmo de Kosaraju
Algoritmo de KosarajuAlgoritmo de Kosaraju
Algoritmo de KosarajuMarcos Castro
 
Maratona de Programação com STL
Maratona de Programação com STLMaratona de Programação com STL
Maratona de Programação com STLMarcos Castro
 
Backtracking - Gerar todos os subconjuntos
Backtracking - Gerar todos os subconjuntosBacktracking - Gerar todos os subconjuntos
Backtracking - Gerar todos os subconjuntosMarcos Castro
 

Destaque (20)

Listas, tuplas, conjuntos e dicionários
Listas, tuplas, conjuntos e dicionáriosListas, tuplas, conjuntos e dicionários
Listas, tuplas, conjuntos e dicionários
 
Algoritmos gulosos
Algoritmos gulososAlgoritmos gulosos
Algoritmos gulosos
 
Programação dinâmica
Programação dinâmicaProgramação dinâmica
Programação dinâmica
 
Busca em largura - BFS
Busca em largura - BFSBusca em largura - BFS
Busca em largura - BFS
 
Problema do Caixeiro Viajante
Problema do Caixeiro ViajanteProblema do Caixeiro Viajante
Problema do Caixeiro Viajante
 
Metaheurística Simulated Annealing
Metaheurística Simulated AnnealingMetaheurística Simulated Annealing
Metaheurística Simulated Annealing
 
Computação Evolucionária - Seleção por roleta
Computação Evolucionária - Seleção por roletaComputação Evolucionária - Seleção por roleta
Computação Evolucionária - Seleção por roleta
 
FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto
FIT e IFSP - Arquitetura (evolucionária) e o papel do arquitetoFIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto
FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto
 
Introdução aos Algoritmos Genéticos
Introdução aos Algoritmos GenéticosIntrodução aos Algoritmos Genéticos
Introdução aos Algoritmos Genéticos
 
Agrupamento (clustering) - K-Means
Agrupamento (clustering) - K-MeansAgrupamento (clustering) - K-Means
Agrupamento (clustering) - K-Means
 
Visão Geral, Ferramentas e Aplicações dos Algoritmos Genéticos
Visão Geral, Ferramentas e Aplicações dos Algoritmos GenéticosVisão Geral, Ferramentas e Aplicações dos Algoritmos Genéticos
Visão Geral, Ferramentas e Aplicações dos Algoritmos Genéticos
 
Fila de prioridades
Fila de prioridadesFila de prioridades
Fila de prioridades
 
IA Redes Neurais Artificiais
IA Redes Neurais ArtificiaisIA Redes Neurais Artificiais
IA Redes Neurais Artificiais
 
CURSO TÉCNICO PARA SECRETÁRIO ESCOLAR.
CURSO TÉCNICO PARA SECRETÁRIO ESCOLAR. CURSO TÉCNICO PARA SECRETÁRIO ESCOLAR.
CURSO TÉCNICO PARA SECRETÁRIO ESCOLAR.
 
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
 
2012: Tutorial sobre Sistemas de Recomendação para E-commerce
2012: Tutorial sobre Sistemas de Recomendação para E-commerce2012: Tutorial sobre Sistemas de Recomendação para E-commerce
2012: Tutorial sobre Sistemas de Recomendação para E-commerce
 
2010: Computação Natural - Uma Jornada Ilustrada
2010: Computação Natural - Uma Jornada Ilustrada2010: Computação Natural - Uma Jornada Ilustrada
2010: Computação Natural - Uma Jornada Ilustrada
 
Algoritmo de Kosaraju
Algoritmo de KosarajuAlgoritmo de Kosaraju
Algoritmo de Kosaraju
 
Maratona de Programação com STL
Maratona de Programação com STLMaratona de Programação com STL
Maratona de Programação com STL
 
Backtracking - Gerar todos os subconjuntos
Backtracking - Gerar todos os subconjuntosBacktracking - Gerar todos os subconjuntos
Backtracking - Gerar todos os subconjuntos
 

Mais de Marcos Castro

Árvores de Decisão
Árvores de DecisãoÁrvores de Decisão
Árvores de DecisãoMarcos Castro
 
Colored de Bruijn Graphs
Colored de Bruijn GraphsColored de Bruijn Graphs
Colored de Bruijn GraphsMarcos Castro
 
Maratona de Programação
Maratona de ProgramaçãoMaratona de Programação
Maratona de ProgramaçãoMarcos Castro
 
Ferramentas para Bioinformática
Ferramentas para BioinformáticaFerramentas para Bioinformática
Ferramentas para BioinformáticaMarcos Castro
 
A importância da Bioinformática
A importância da BioinformáticaA importância da Bioinformática
A importância da BioinformáticaMarcos Castro
 
Agrupamento de sequências biológicas
Agrupamento de sequências biológicasAgrupamento de sequências biológicas
Agrupamento de sequências biológicasMarcos Castro
 
Longest palindromic subsequence (LPS)
Longest palindromic subsequence (LPS)Longest palindromic subsequence (LPS)
Longest palindromic subsequence (LPS)Marcos Castro
 
Problema da Mochila 0-1 (Knapsack problem)
Problema da Mochila 0-1 (Knapsack problem)Problema da Mochila 0-1 (Knapsack problem)
Problema da Mochila 0-1 (Knapsack problem)Marcos Castro
 
Algoritmo de Knuth-Morris-Pratt - KMP
Algoritmo de Knuth-Morris-Pratt - KMPAlgoritmo de Knuth-Morris-Pratt - KMP
Algoritmo de Knuth-Morris-Pratt - KMPMarcos Castro
 
Bioinformática com Biopython
Bioinformática com BiopythonBioinformática com Biopython
Bioinformática com BiopythonMarcos Castro
 
Estruturas de dados com C++ e STL
Estruturas de dados com C++ e STLEstruturas de dados com C++ e STL
Estruturas de dados com C++ e STLMarcos Castro
 
Problema das N rainhas (Backtracking)
Problema das N rainhas (Backtracking)Problema das N rainhas (Backtracking)
Problema das N rainhas (Backtracking)Marcos Castro
 

Mais de Marcos Castro (15)

Árvores de Decisão
Árvores de DecisãoÁrvores de Decisão
Árvores de Decisão
 
Colored de Bruijn Graphs
Colored de Bruijn GraphsColored de Bruijn Graphs
Colored de Bruijn Graphs
 
Maratona de Programação
Maratona de ProgramaçãoMaratona de Programação
Maratona de Programação
 
Bioinformática
BioinformáticaBioinformática
Bioinformática
 
Arquivos FASTQ
Arquivos FASTQArquivos FASTQ
Arquivos FASTQ
 
Ferramentas para Bioinformática
Ferramentas para BioinformáticaFerramentas para Bioinformática
Ferramentas para Bioinformática
 
A importância da Bioinformática
A importância da BioinformáticaA importância da Bioinformática
A importância da Bioinformática
 
Bioinformática
BioinformáticaBioinformática
Bioinformática
 
Agrupamento de sequências biológicas
Agrupamento de sequências biológicasAgrupamento de sequências biológicas
Agrupamento de sequências biológicas
 
Longest palindromic subsequence (LPS)
Longest palindromic subsequence (LPS)Longest palindromic subsequence (LPS)
Longest palindromic subsequence (LPS)
 
Problema da Mochila 0-1 (Knapsack problem)
Problema da Mochila 0-1 (Knapsack problem)Problema da Mochila 0-1 (Knapsack problem)
Problema da Mochila 0-1 (Knapsack problem)
 
Algoritmo de Knuth-Morris-Pratt - KMP
Algoritmo de Knuth-Morris-Pratt - KMPAlgoritmo de Knuth-Morris-Pratt - KMP
Algoritmo de Knuth-Morris-Pratt - KMP
 
Bioinformática com Biopython
Bioinformática com BiopythonBioinformática com Biopython
Bioinformática com Biopython
 
Estruturas de dados com C++ e STL
Estruturas de dados com C++ e STLEstruturas de dados com C++ e STL
Estruturas de dados com C++ e STL
 
Problema das N rainhas (Backtracking)
Problema das N rainhas (Backtracking)Problema das N rainhas (Backtracking)
Problema das N rainhas (Backtracking)
 

Último

Acessibilidade, inclusão e valorização da diversidade
Acessibilidade, inclusão e valorização da diversidadeAcessibilidade, inclusão e valorização da diversidade
Acessibilidade, inclusão e valorização da diversidadeLEONIDES PEREIRA DE SOUZA
 
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxMonoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxFlviaGomes64
 
O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.denisecompasso2
 
M0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxM0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxJustinoTeixeira1
 
Aula 1 - Psicologia Cognitiva, aula .ppt
Aula 1 - Psicologia Cognitiva, aula .pptAula 1 - Psicologia Cognitiva, aula .ppt
Aula 1 - Psicologia Cognitiva, aula .pptNathaliaFreitas32
 
Educação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptxEducação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptxMarcosLemes28
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024azulassessoria9
 
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...marcelafinkler
 
INTERTEXTUALIDADE atividade muito boa para
INTERTEXTUALIDADE   atividade muito boa paraINTERTEXTUALIDADE   atividade muito boa para
INTERTEXTUALIDADE atividade muito boa paraAndreaPassosMascaren
 
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...MariaCristinaSouzaLe1
 
Quiz | Dia da Europa 2024 (comemoração)
Quiz | Dia da Europa 2024  (comemoração)Quiz | Dia da Europa 2024  (comemoração)
Quiz | Dia da Europa 2024 (comemoração)Centro Jacques Delors
 
Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024Cabiamar
 
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.docGUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.docPauloHenriqueGarciaM
 
Caderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdfCaderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdfJuliana Barbosa
 
tensoes-etnicas-na-europa-template-1.pptx
tensoes-etnicas-na-europa-template-1.pptxtensoes-etnicas-na-europa-template-1.pptx
tensoes-etnicas-na-europa-template-1.pptxgia0123
 
Sopa de letras | Dia da Europa 2024 (nível 1)
Sopa de letras | Dia da Europa 2024 (nível 1)Sopa de letras | Dia da Europa 2024 (nível 1)
Sopa de letras | Dia da Europa 2024 (nível 1)Centro Jacques Delors
 
MESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdf
MESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdfMESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdf
MESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdfprofesfrancleite
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...azulassessoria9
 
Aprender as diferentes formas de classificar as habilidades motoras é de extr...
Aprender as diferentes formas de classificar as habilidades motoras é de extr...Aprender as diferentes formas de classificar as habilidades motoras é de extr...
Aprender as diferentes formas de classificar as habilidades motoras é de extr...azulassessoria9
 
Sopa de letras | Dia da Europa 2024 (nível 2)
Sopa de letras | Dia da Europa 2024 (nível 2)Sopa de letras | Dia da Europa 2024 (nível 2)
Sopa de letras | Dia da Europa 2024 (nível 2)Centro Jacques Delors
 

Último (20)

Acessibilidade, inclusão e valorização da diversidade
Acessibilidade, inclusão e valorização da diversidadeAcessibilidade, inclusão e valorização da diversidade
Acessibilidade, inclusão e valorização da diversidade
 
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxMonoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
 
O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.
 
M0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxM0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptx
 
Aula 1 - Psicologia Cognitiva, aula .ppt
Aula 1 - Psicologia Cognitiva, aula .pptAula 1 - Psicologia Cognitiva, aula .ppt
Aula 1 - Psicologia Cognitiva, aula .ppt
 
Educação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptxEducação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptx
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
 
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
 
INTERTEXTUALIDADE atividade muito boa para
INTERTEXTUALIDADE   atividade muito boa paraINTERTEXTUALIDADE   atividade muito boa para
INTERTEXTUALIDADE atividade muito boa para
 
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
 
Quiz | Dia da Europa 2024 (comemoração)
Quiz | Dia da Europa 2024  (comemoração)Quiz | Dia da Europa 2024  (comemoração)
Quiz | Dia da Europa 2024 (comemoração)
 
Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024
 
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.docGUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
 
Caderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdfCaderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdf
 
tensoes-etnicas-na-europa-template-1.pptx
tensoes-etnicas-na-europa-template-1.pptxtensoes-etnicas-na-europa-template-1.pptx
tensoes-etnicas-na-europa-template-1.pptx
 
Sopa de letras | Dia da Europa 2024 (nível 1)
Sopa de letras | Dia da Europa 2024 (nível 1)Sopa de letras | Dia da Europa 2024 (nível 1)
Sopa de letras | Dia da Europa 2024 (nível 1)
 
MESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdf
MESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdfMESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdf
MESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdf
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
 
Aprender as diferentes formas de classificar as habilidades motoras é de extr...
Aprender as diferentes formas de classificar as habilidades motoras é de extr...Aprender as diferentes formas de classificar as habilidades motoras é de extr...
Aprender as diferentes formas de classificar as habilidades motoras é de extr...
 
Sopa de letras | Dia da Europa 2024 (nível 2)
Sopa de letras | Dia da Europa 2024 (nível 2)Sopa de letras | Dia da Europa 2024 (nível 2)
Sopa de letras | Dia da Europa 2024 (nível 2)
 

Binary heap

  • 2. Binary Heap • Uma Binary Heap é uma árvore binária completa ou quase completa. • Exemplo de árvore binária completa: Todos os níveis (exceto possivelmente o último) estão completamente preenchidos. 2
  • 3. Binary Heap • Tem-se a Min-Heap e Max-Heap. • Min-Heap: • O valor de cada nó é maior ou igual do que o valor do seu pai, o menor valor está na raiz. • Max-Heap: • O valor de cada nó é menor ou igual do que o valor do seu pai, o maior valor está na raiz. • Os elementos estão dispostos na heap de forma que o pai sempre tem prioridade maior ou igual do que a prioridade de seus filhos. 3
  • 4. Binary Heap • Cada posição do array é considerado pai de outras duas posições que são os filhos. • A posição “i” passa a ser pai das posições: • 2i + 1 (filho à esquerda) • 2i + 2 (filho à direita) 4
  • 5. Binary Heap • Para inserir um novo elemento, basta inserir na primeira posição vaga do array, ou seja, ao final do array. • Inserir ao final do array quer dizer que inicialmente o novo elemento é uma folha. • Feito isso, precisa-se levar o elemento inserido para a sua respectiva posição na heap de acordo com a sua prioridade (“subir” na árvore). 5
  • 6. Binary Heap • Vamos construir uma Min-Heap. • Exemplo: 12, 7, 6, 10, 8, 20 • Inserindo o 12... 12 6 Array: 12
  • 7. Binary Heap • Exemplo: 12, 7, 6, 10, 8, 20 • Inserindo o 7... 12 7 Violou a propriedade da min-heap! 7 Array: 12, 7
  • 8. Binary Heap • Exemplo: 12, 7, 6, 10, 8, 20 • Corrigindo: 12 7 7 12 8 Array: 7, 12
  • 9. Binary Heap • Exemplo: 12, 7, 6, 10, 8, 20 • Inserindo o 6... 7 12 6 Violou a propriedade da min-heap, pois o 6 é menor do que o seu pai: 7. 9 Array: 7, 12, 6
  • 10. Binary Heap • Exemplo: 12, 7, 6, 10, 8, 20 • Corrigindo... 6 12 7 10 Array: 6, 12, 7
  • 11. Binary Heap • Exemplo: 12, 7, 6, 10, 8, 20 • Inserindo o 10... 6 12 7 10 Violou a propriedade da min-heap, pois o 10 é menor que o seu pai: 12. 11 Array: 6, 12, 7, 10
  • 12. Binary Heap • Exemplo: 12, 7, 6, 10, 8, 20 • Corrigindo... 6 10 7 12 12 Array: 6, 10, 7, 12
  • 13. Binary Heap • Exemplo: 12, 7, 6, 10, 8, 20 • Inserindo o 8... 6 10 7 12 8 Violou a propriedade da min-heap, pois o 8 é menor que o seu pai: 10. 13 Array: 6, 10, 7, 12, 8
  • 14. Binary Heap • Exemplo: 12, 7, 6, 10, 8, 20 • Corrigindo... 6 8 7 12 10 14 Array: 6, 8, 7, 12, 10
  • 15. Binary Heap • Exemplo: 12, 7, 6, 10, 8, 20 • Inserindo o 20... 6 8 7 12 10 20 15Array: 6, 8, 7, 12, 10, 20
  • 16. Binary Heap • Exemplo: 12, 7, 6, 10, 8, 20 6 8 7 12 10 20 16Array: 6, 8, 7, 12, 10, 20
  • 17. Binary Heap • Para remover, remove-se o elemento que está no topo da heap, ou seja, no início do array. • Copia-se o elemento do final para o início do array. • Leva-se o elemento que foi colocado no topo da heap para a sua respectiva posição de acordo com a sua prioridade. 17
  • 18. Binary Heap • Removendo o 6... 6 8 7 12 10 20 18Array: 6, 8, 7, 12, 10, 20
  • 19. Binary Heap • Removendo o 6... 8 7 12 10 20 O 20 é o último elemento do array. 19Array: 8, 7, 12, 10, 20
  • 20. Binary Heap • Removendo o 6... 8 7 12 10 20 20Array: 20, 8, 7, 12, 10
  • 21. Binary Heap • Removendo o 6... 8 7 12 10 20 Troca o 20 com o 7 para refazer a heap. 21
  • 22. Binary Heap • Heap refeita! 8 20 12 10 7 22 Array: 7, 8, 20, 12, 10
  • 23. Binary Heap - Custo • A inserção e remoção é O(logN). • Tanto na remoção como na inserção, precisa-se verificar e corrigir (se necessário) violações das propriedades da heap. 23
  • 24. Binary Heap • Simulação da Binary Heap: • http://visualgo.net/heap.html (max heap) • https://www.cs.usfca.edu/~galles/visualization/Heap.html (min heap) 24