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

Construção (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãConstrução (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãIlda Bicacro
 
Libras Jogo da memória em LIBRAS Memoria
Libras Jogo da memória em LIBRAS MemoriaLibras Jogo da memória em LIBRAS Memoria
Libras Jogo da memória em LIBRAS Memorialgrecchi
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
A poesia - Definições e Característicass
A poesia - Definições e CaracterísticassA poesia - Definições e Característicass
A poesia - Definições e CaracterísticassAugusto Costa
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinhaMary Alvarenga
 
Ficha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFicha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFtimaMoreira35
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....LuizHenriquedeAlmeid6
 
Dicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelDicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelGilber Rubim Rangel
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...IsabelPereira2010
 
GÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - CartumGÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - CartumAugusto Costa
 
Atividades sobre Coordenadas Geográficas
Atividades sobre Coordenadas GeográficasAtividades sobre Coordenadas Geográficas
Atividades sobre Coordenadas Geográficasprofcamilamanz
 
VARIEDADES LINGUÍSTICAS - 1. pptx
VARIEDADES        LINGUÍSTICAS - 1. pptxVARIEDADES        LINGUÍSTICAS - 1. pptx
VARIEDADES LINGUÍSTICAS - 1. pptxMarlene Cunhada
 
Revista-Palavra-Viva-Profetas-Menores (1).pdf
Revista-Palavra-Viva-Profetas-Menores (1).pdfRevista-Palavra-Viva-Profetas-Menores (1).pdf
Revista-Palavra-Viva-Profetas-Menores (1).pdfMárcio Azevedo
 
PLANOS E EIXOS DO CORPO HUMANO.educacao física pptx
PLANOS E EIXOS DO CORPO HUMANO.educacao física pptxPLANOS E EIXOS DO CORPO HUMANO.educacao física pptx
PLANOS E EIXOS DO CORPO HUMANO.educacao física pptxSamiraMiresVieiradeM
 
Pedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxPedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxleandropereira983288
 
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptxJOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptxTainTorres4
 
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdf
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdfPortfolio_Trilha_Meio_Ambiente_e_Sociedade.pdf
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdfjanainadfsilva
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 

Último (20)

Construção (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãConstrução (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! Sertã
 
Libras Jogo da memória em LIBRAS Memoria
Libras Jogo da memória em LIBRAS MemoriaLibras Jogo da memória em LIBRAS Memoria
Libras Jogo da memória em LIBRAS Memoria
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
A poesia - Definições e Característicass
A poesia - Definições e CaracterísticassA poesia - Definições e Característicass
A poesia - Definições e Característicass
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinha
 
Ficha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFicha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdf
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
 
Dicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelDicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim Rangel
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
 
GÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - CartumGÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
 
Atividades sobre Coordenadas Geográficas
Atividades sobre Coordenadas GeográficasAtividades sobre Coordenadas Geográficas
Atividades sobre Coordenadas Geográficas
 
VARIEDADES LINGUÍSTICAS - 1. pptx
VARIEDADES        LINGUÍSTICAS - 1. pptxVARIEDADES        LINGUÍSTICAS - 1. pptx
VARIEDADES LINGUÍSTICAS - 1. pptx
 
Revista-Palavra-Viva-Profetas-Menores (1).pdf
Revista-Palavra-Viva-Profetas-Menores (1).pdfRevista-Palavra-Viva-Profetas-Menores (1).pdf
Revista-Palavra-Viva-Profetas-Menores (1).pdf
 
PLANOS E EIXOS DO CORPO HUMANO.educacao física pptx
PLANOS E EIXOS DO CORPO HUMANO.educacao física pptxPLANOS E EIXOS DO CORPO HUMANO.educacao física pptx
PLANOS E EIXOS DO CORPO HUMANO.educacao física pptx
 
Pedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxPedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptx
 
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptxJOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
 
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdf
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdfPortfolio_Trilha_Meio_Ambiente_e_Sociedade.pdf
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdf
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 

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