Lista de Prioridades. Estrutura de Dados II Prof. Erinaldo

Documentos relacionados
INF 1010 Estruturas de Dados Avançadas

Árvores Auto-ajustadas

Ordenação Interna. Prof. Jonas Potros

Árvores Rubro-Negra IFRN

INF 1010 Estruturas de Dados Avançadas

Edital de Seleção 024/2017 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

Árvores Binárias de Busca (ABB) 18/11

ESTRUTURA DE DADOS CIÊNCIA E TECNOLOGIA DO RIO. Curso de Tecnologia em Sistemas para Internet

Estruturas de Dados. Aula 08. Árvores AVL II. Karina Mochetti

Algoritmos e Estruturas de Dados 2006/2007

Dicionários. TAD Orientado a conteúdo

ESTRUTURA DE DADOS E ALGORITMOS HEAPS E LISTAS DE PRIORIDADES

Árvores Vermelho-Preto

Listas de Prioridade. Fonte de consulta: Szwarcfiter, J.; Markezon, L. Estruturas de Dados e seus Algoritmos, 3a. ed. LTC.

Árvores. Fabio Gagliardi Cozman. PMR2300 Escola Politécnica da Universidade de São Paulo

DAINF - Departamento de Informática

Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo

Árvores Binárias de Busca (ABB) 18/11

Heapsort ordenação por árvore de seleção

Algoritmos e Estrutura de dados II. Fila de Prioridade e Heaps

Árvores. SCC-202 Algoritmos e Estruturas de Dados I. Lucas Antiqueira

Aula 28: Listas de Prioridades

Edital de Seleção 023/2018 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

Árvores Vermelho-Preto

Teoria dos Grafos Aula 8

ESTRUTURAS DE DADOS E ALGORITMOS HEAP BINÁRIA

Métodos de Ordenação Parte 4

Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo

Ordenação: Heapsort. Algoritmos e Estruturas de Dados II

Heapsort ordenação por árvore de seleção

Árvores Binárias de Busca

Algoritmo de Dijkstra Estudo e Implementação

Filas de Prioridades Letícia Rodrigues Bueno

Árvores B. Definição: Seja t a ordem da árvore B. Uma árvore B de ordem t é uma árvore ordenada que é vazia, ou que satisfaz as seguintes condições:

Árvores binárias de busca

(a) todos os nós irmãos da árvore m-ária são interligados; (b) todas as conexões pai-filho são removidas, exceto a primeira de cada grupo.

Árvores de Suporte de Custo Mínimo

Prova 2 PMR2300 1o. semestre 2015 Prof. Thiago Martins

Árvores B. Prof. Márcio Bueno. / Fonte: Material da Prof a Ana Eliza Lopes Moura

ESTRUTURA DE DADOS DCC013. Árvore Binária de Busca

Árvores binárias de busca

CES-11. Algoritmos e Estruturas de Dados. Representação. A estrutura heap. Heap é uma árvore binária com duas propriedades:

Ordenação de Dados (III) HeapSort

Ordenação: HeapSort. Prof. Túlio Toffolo BCC202 Aula 17 Algoritmos e Estruturas de Dados I

Heaps. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35

Teoria dos Grafos Aula 8

Pesquisa em Memória Secundária. Prof. Jonas Potros

Heapsort Letícia Rodrigues Bueno

Busca em vetores. Para encontrar um elemento em um vetor desordenado é caro Porém, inserir ou remover é barato.

Árvore Vermelho-Preta. Estrutura de Dados II Jairo Francisco de Souza

Árvore B. Uma Árvore B de ordem m éumaárvore,talque: Cada nó contém no máximo m

Algoritmos e Estruturas de Dados 2005/2006

3. Conteúdo de um vértice v é conteúdo dos filhos de v.

Estrutura de Dados. Estrutura de Dados Recursividade. Exemplo: 5! = 5 x 4! 4! = 4 x 3! 3! = 3 X 2! 2! = 2 x 1! 1! = 1 x 0!

INF 1010 Estruturas de Dados Avançadas

Árvores Binárias. Disciplina de Algoritmos e Estrutura de Dados III. Prof. Marcos Antonio Schreiner 17/03/2015

Algoritmo da IFT 2 / 16. Algoritmo da IFT Estrutura da fila de prioridade Resolvendo empates. Algoritmo 1 Algoritmo geral da IFT

Filas de Prioridade & Heaps

void ins_ele (ARV_BIN_BUSCA *arv, int v) { if (!(*arv)) maketree(arv, v); else if (v<info(*arv)) /* if (v<(*arv)->info) */ ins_ele(&((*arv)->left),

Ordenação por Intercalação Métodos de Ordenação Parte 4

Árvores binárias de busca

Filas de prioridade. Marcelo K. Albertini. 27 de Novembro de 2014

Árvores. SCC-214 Projeto de Algoritmos. Thiago A. S. Pardo. Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral

Edital de Seleção 032/2016 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

Edital de Seleção 055/2017 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

Filas de prioridade. Algoritmos e Estruturas de Dados AED 2005/2006 AEDA 2009/2010

Linguagem C: Árvores AVL

Aula 13: Ordenação - Heapsort. Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP

Pesquisa em Memória Primária. Prof. Jonas Potros

Heapsort é um método de ordenação cujo princípio de funcionamento é o mesmo utilizado para a ordenação por seleção.

INF1010 Lista de Exercícios 2

Introdução a árvores AVL. Prof. Ernesto Lindstaedt

Aplicações de listas e outras estruturas

Estruturas de Dados II

Algoritmos e Estrutura de Dados II. Árvore AVL. Prof a Karina Oliveira. Fonte: Prof a Ana Eliza

ÁRVORE AVL. Problema do balanceamento

Árvores. Árvores M-Vias. Métodos de Pesquisa de Dados. de Pesquisa (ANP) VANTAGENS EXEMPLO

Árvores Binárias de Busca

Prova Substitutiva PMR3201 1o. semestre 2018 Prof. Thiago Martins

INF 1010 Estruturas de Dados Avançadas. Árvores binárias

Aplicações de listas Outras estruturas

Algoritmos e Estrutura de Dados II. Árvore AVL. Prof Márcio Bueno. / Material da Prof a Ana Eliza

Estruturas de Dados. Módulo 17 - Busca. 2/6/2005 (c) Dept. Informática - PUC-Rio 1

Árvores Binárias. 9/11 e 11/11 Conceitos Representação e Implementação

Ordenação por Seleção Métodos de Ordenação Parte 3

Métodos de Ordenação

1. Proponha algoritmos para: a. Calcular a altura dos nós de uma árvore binária dada, armazenando o valor da altura no nó.

Estruturas de Dados. Profº Carlos Alberto Teixeira Batista

ÁRVORES BINÁRIAS DE BUSCA. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

ÁRVORES ABB (ÁRVORES BINÁRIAS DE BUSCAS) Sérgio Carlos Portari Júnior

Listas Estáticas. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof.

HeapSort Filas de Prioridade Heap. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR

TABELAS DE DISPERSÃO/HASH

Estruturas de Dados Algoritmos de Ordenação

Disciplina que estuda as técnicas computacionais para a organização e manipulação eficiente de quaisquer quantidades de informação.

Aula 19 Árvores Rubro-Negras

Árvores AVL (Balanceadas) Profª.Drª. Roseli Ap. Francelin Romero Fonte: Profa. Patrícia Marchetti Revisão: Gedson Faria

Algoritmos de Ordenação: HeapSort

Transcrição:

Lista de Prioridades Estrutura de Dados II Prof. Erinaldo

Heap Ou lista de prioridades, é composta por um conjunto finito de dados, cada qual com uma chave que determinará sua prioridade dentro da lista. É um vetor. Uma árvore binária completa Cada nó possui no máximo dois filhos Os nós que não possuem dois filhos estão no último ou no penúltimo nível.

Heap (cont.) A árvore que representa a estrutura heap é sempre preenchida da esquerda para a direita.

Heap (cont.) Dado um índice i do vetor, para se descobrir as posições em que se encontram o elemento pai, o filho esquerdo e o filho direito, realizam-se os cálculos: Pai(i) = i / 2 Filho Esquerdo(i) = 2 i Filho Direito(i) = 2 i+1

Heap (cont.) Existem dois tipos de heaps binários: heaps máximos: o maior elemento se encontra no raiz. X[Pai(i)] X[i] heaps mínimos: o menor elemento está na raiz. X[Pai(i)] X[i]

Heap (cont.) Exemplo de uso: processos pendentes usados por um sistema operacional, onde cada processo possui um valor associado que indica a prioridade do trabalho. Os processo são mantidos em uma lista de prioridades, onde os com prioridade mais alta serão executados antes de quaisquer trabalhos com necessidades menos urgentes.

Heap Máximo

Heap Mínimo

Heap Máximo e Mínimo

Heap Máximo e Mínimo a) O elemento raiz deve ocupar a posição 1 do vetor, o que facilita o cálculo dos endereços dos elementos filhos da direita e da esquerda. b) O vetor utilizado para armazenar n elementos tem a posição inicial zero e como esta não será utilizada o vetor deve ser declarado com n+1 posições.

Heap Máximo e Mínimo c) Se o heap for máximo, a propriedade de um elemento pai deve ser maior que a de seus filhos. Esta propriedade deve ser aplicada a cada elemento da lista. d) Se o heap for mínimo, a prioridade de um elemento pai deve ser menor que a de seus filhos. Esta propriedade deve ser aplicada a cada elemento da lista.

Heap Máximo e Mínimo Operações: inserir um elemento na estrutura heap. remover o elemento de maior prioridade em um heap máximo ou o de menor prioridade em um heap mínimo. consultar um elemento de maior prioridade em um heap máximo ou o de menor prioridade em um heap mínimo.

Inserção O elemento deve ser inserido na próxima posição livre, porém, antes, deve ser verificado se o pai atende a propriedade heap. Caso não atenda, o paí é copiado para a posição de inserção e a posição antiga do pai é avaliada para inserir o novo elemento. A regra deve ser aplicada sucessivamente até encontrar a posição correta do no elemento.

Remoção Retira o elemento de maior prioridade ou o de menor prioridade. A remoção coloca o último elemento no lugar do primeiro. O procedimento heap_fica é aplicado para que o conjunto de elementos volte a ser um heap.

Consultar Acessa o valor da raiz da árvore, que é o primeiro elemento do vetor.

Análise da Complexidade Heap máximo e mínimo operação de consulta do elemento de maior ou menor prioridade gasta tempo constante, O(1) acessa apenas o primeiro elemento da lista

Análise da complexidade Heap máximo e mínimo operação de remoção do elemento de maior ou menor prioridade (elemento raiz), gasta tempo O(log n) o último elemento da lista é colocado no lugar do removido, aplicação do procedimento heap_fica.

Análise de complexidade Heap máximo e mínimo operação de inserção tenta incluir o novo elemento no fim, verificando se na posição a ser inserida a propriedade heap será mantida. No pior caso o elemento será colocado na raiz (percorre da folha até à raiz), gastando tempo proporcional à altura da árvore, O(log n).

Heap max-min e heap min-max Aplicações de heap onde é necessário acessar o elemento que possui a maior e a menor prioridade. Implementa estrutura de vetores e podem ser vistas como árvores binárias completas.

Heap max-min e heap min-max Operações: consulta do elemento de maior ou de menor prioridade, inserção de um elemento e remoção do elemento de maior ou de menor prioridade.

Propriedades O elemento raiz deve ocupar a posição 1 do vetor. O vetor utilizado para armazenar n elementos tem a posição inicial zero. Em um heap max-min o elemento de maior prioridade ocupada sempre a posição 1 do vetor. Em um heap min-max o elemento de menor prioridade ocupa sempre a posição 1 do vetor.

Propriedades Cada elemento do vetor corresponde a um nó da árvore binária e encontra-se em um nível. Em um heap max-min os níveis ímpares são chamados níveis máximos e os pares níveis mínimos. Em um heap min-max os níveis ímpares são chamados níveis mínimos e os pares níveis máximos.

Propriedades Em um heap max-min, se o nível de um nó i é máximo (ímpar) a sua chave é superior à chave do seu pai e inferior à chave do seu avô. Em um heap min-max, se o nível de um nó i é mínimo (ímpar) a sua chave é inferior à chave do seu pai e superior à chave do seu avô.

Em um heap max-min e em um heap min-max a chave de um nó i é superior às chaves de seus descendentes quando i está situado em um nível máximo, e inferior às chaves de seus descendentes quando i é situado em um nível mínimo.