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

Governo Provisório Era Vargas 1930-1934 Brasil
Governo Provisório Era Vargas 1930-1934 BrasilGoverno Provisório Era Vargas 1930-1934 Brasil
Governo Provisório Era Vargas 1930-1934 Brasillucasp132400
 
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxAD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxkarinedarozabatista
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfManuais Formação
 
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniModelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniCassio Meira Jr.
 
Regência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdfRegência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdfmirandadudu08
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditaduraAdryan Luiz
 
02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdfJorge Andrade
 
“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptx“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptxthaisamaral9365923
 
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresLilianPiola
 
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxSlides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxLuizHenriquedeAlmeid6
 
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxApostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxIsabelaRafael2
 
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Mary Alvarenga
 
Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.keislayyovera123
 
Cultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfCultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfaulasgege
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024Jeanoliveira597523
 
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxOsnilReis1
 
E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?Rosalina Simão Nunes
 
Bullying - Atividade com caça- palavras
Bullying   - Atividade com  caça- palavrasBullying   - Atividade com  caça- palavras
Bullying - Atividade com caça- palavrasMary Alvarenga
 
Guia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdfGuia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdfEyshilaKelly1
 

Último (20)

Governo Provisório Era Vargas 1930-1934 Brasil
Governo Provisório Era Vargas 1930-1934 BrasilGoverno Provisório Era Vargas 1930-1934 Brasil
Governo Provisório Era Vargas 1930-1934 Brasil
 
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxAD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdf
 
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniModelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
 
Regência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdfRegência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdf
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditadura
 
02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf
 
“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptx“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptx
 
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
 
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxSlides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
 
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxApostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
 
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
 
Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.
 
Cultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfCultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdf
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024
 
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
 
E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?
 
Bullying - Atividade com caça- palavras
Bullying   - Atividade com  caça- palavrasBullying   - Atividade com  caça- palavras
Bullying - Atividade com caça- palavras
 
Guia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdfGuia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdf
 
Em tempo de Quaresma .
Em tempo de Quaresma                            .Em tempo de Quaresma                            .
Em tempo de Quaresma .
 

Binary Heap: Estrutura de Dados

  • 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