Filas com prioridade - Introdução (1)
|
|
- Lídia Castilhos Dreer
- 8 Há anos
- Visualizações:
Transcrição
1 AED Algoritmos e Estruturas de Dados LEEC /2005 Filas com Prioridade Filas com prioridade - Introdução (1) Filas com prioridade (Priority Queues) usadas em diversas aplicações: Despacho (scheduler) de tarefas. Compressão de ficheiros. Algoritmos de ordenação. Operações mais usuais em filas com prioridade: Criar fila, a partir de um conjunto de items Inserir novo item Remover o item com prioridade mais elevada Remover um item Modificar a prioridade de um item Juntar duas filas de prioridade AED (IST/DEEC) 2
2 Filas com prioridade - Introdução (2) Interface do tipo abstracto: void PQinit(int); /* inicializa fila com prioridade, com número máximo de items */ BOOL PQempty(); /* testa fila vazia */ void PQinsert(Item); /* insere item */ Item PQdelmax(); /* elimina item de maior prioridade */ as filas de prioridade, todos os elemento possuem uma chave, que pode ser usada para ordenar a fila. AED (IST/DEEC) 3 Filas com prioridade por tabela (1) Implementação por tabela não ordenada #include <stdlib.h> #include Item.h /* aqui o cliente define os dados */ static Item *queue; static int free; /* primeira posição livre*/ void PQinit(unsigned Size) { PQinsert(i1); PQinsert(i3); PQinsert(i2); queue = (Item *) malloc(size * sizeof(item)); free = 0; } void PQinsert(Item I) { /*elemento inserido sempre na primeira posição livre*/ queue[free++] = I; } BOOL IsEmpty() { return free == 0? TRUE : FALSE; } free=3 i2 i3 i1 AED (IST/DEEC) 4
3 Filas com prioridade por tabela (2) Item PQdelmax() { /* elimina elemento de maior chave */ int Idx, Max; /* procura elemento com maior chave */ for(idx=1, Max=0; Idx<free; Idx++) if(less(queue[max], queue[idx])) Max = Idx; exch(queue[max], queue[free-1]); /* troca topo com o elemento de maior chave */ return(queue[--free]); } Seja Key(i3)>Key(i2)>Key(i1) PQdelmax() dá: i2 i3 i2 free=3 i1 free=2 i1 AED (IST/DEEC) 5 Filas com prioridade por tabela (3) Tabela ordenada pela chave Inserção e remoção de um elemento com prioridade qualquer, exige varrimento da tabela para deslocar items (no pior caso, toda a tabela). Procura e remoção do elemento com maior chave em tempo constante (acesso imediato ao topo). A implementação das filas de prioridade por acervos (heaps) permite o melhor equilíbrio no desempenho da procura (e remoção) de elementos com maior e com prioridade qualquer. AED (IST/DEEC) 6
4 Filas com prioridade por tabela (4) Complexidade, no pior caso, das operações das filas com prioridade (segundo algumas implementações) Inserção Remover chave máxima Remover Encontrar chave máxima Modificar prioridade Junção Tabela ordenada 1 1 Tabela não ordenada Acervo (Heap) lg lg lg 1 lg AED (IST/DEEC) 7 Acervos (1) Definição Um acervo (heap) é uma representação, em tabela, de uma árvore que satisfaz a condição de acervo (heap condition) : o valor da chave associada a cada nó é superior ao valor das chaves associadas em todos os nós de altura inferior A ordenação dos acervos é parcial (heap-ordering) Vantagens da representação de árvores por tabela Menor ocupação de memória Acesso constante a qualquer elemento Inconvenientes da representação de árvores por tabela ecessário conhecer tamanho à partida AED (IST/DEEC) 8
5 Acervos (2) Convenção: nos acervos, a prioridade é maior quanto menor for o número. #define lesspri(a, B) (key(a) > key(b)) A criação de um acervo, a partir de uma árvore, é feita percorrendo a árvore em largura (breadht-first). Se árvore não for completa, existem casas vazias: a solução é impor que todos os nós intermédios sejam preenchidos. AED (IST/DEEC) 9 Acervos (3) Exemplo A1: Acervo de 12 posições O nó ascendente da posição i é (i-1)/2 Exemplo: nó ascendente da posição 6 (prioridade 20), está na posição (6-1)/2 = 2 (prioridade 7) Os nós descendentes da posição i são 2i+1 e 2(i+1) Exemplo: nós descendentes da posição 0 (prioridade 3), estão nas posições 1 (prioridade 5) e 2 (prioridade 7) Exemplo: nós descendentes da posição 2 (prioridade 7), estão nas posições 5 (prioridade 16) e 6 (prioridade 20) ota! o livro do Sedgewick, os índices da tabela são considerados a partir de 1, Aqui usamos a convenção do C (a partir de 0) AED (IST/DEEC) 10
6 Acervos (4) Alteração/inserção/remoção de um elemento pode quebrar a condição dos acervos. Exemplo: se a chave for decrementada (valor substituído por outro maior), os descendentes podem passar a ter chaves maiores. Se a chave for decrementada, verificar nós de alturas inferiores descendo o caminho até à folha Se a chave for incrementada, verificar nós de alturas superiores subindo o caminho até à raiz AED (IST/DEEC) 11 Síntese da Aula 1 de Filas com Prioridade Introdução às filas com prioridade Operações abstractas Implementação por tabelas não-ordenadas Introdução aos acervos (heaps) AED (IST/DEEC) 12
7 Acervos (5) Reposição da ordenação num acervo A. Se prioridade de um nó for aumentada, enquanto não for restabelecida a condição de acervo ou atingida a raiz, trocar com o nó ascendente. void FixUp(Item Heap[], int Idx) { while (Idx > 0 && lesspri(heap[(idx-1)/2], Heap[Idx])) { exch(heap[idx], Heap[(Idx-1)/2]); Idx = (Idx-1)/2; } } Fácil verificar que FixUp é O(lg ) AED (IST/DEEC) 13 Acervos (6) Exemplo A2: o exemplo A1, nó de prioridade 28 (posição 9) passa a ter prioridade Heap[9]=4, Heap[(9-1)/2]= lesspri(heap[4], Heap[9]): trocar e chamar FixUp sobre a posição 4 AED (IST/DEEC) 14
8 Acervos (7) Heap[4]=4, Heap[(4-1)/2]= lesspri(heap[1], Heap[4]): trocar e chamar FixUp sobre a posição 1 AED (IST/DEEC) 15 Acervos (8) Heap[1]=4, Heap[(1-1)/2]= !lessPri(Heap[0], Heap[1]): condição de acervo satisfeita!! AED (IST/DEEC) 16
9 Acervos (9) B. Se prioridade de um nó for diminuída, enquanto não restabelecer a condição de acervo ou atingir uma folha, trocar com o maior descendente. void FixDown(Item Heap[], int Idx, int ) { int Child; /* índice de um nó descendente */ while(2*idx < ) { /* enquanto não chegar às folhas */ Child = 2*Idx+1; /* selecciona o maior descendente. ota: se índice Child é -1, então só há um descendente */ if (Child < && lesspri(heap[child], Heap[Child+1])) Child++; if (!lesspri(heap[idx], Heap[Child])) break; /*condição acervo satisfeita */ exch(heap[idx], Heap[Child]); /* continua a descer a árvore */ Idx = Child; }} Fácil verificar que FixDown é O(lg ) AED (IST/DEEC) 17 Acervos (10) Exemplo A2: o exemplo A1, nó de prioridade 3 (posição 0) passa a ter prioridade Idx=0, Child=2*0+1= !lessPri(Heap[1],Heap[2]): foca na subárvore esq. lesspri(heap[0],heap[1]): troca e chama FixDown sobre a posição 1 AED (IST/DEEC) 18
10 Acervos (11) Idx=1, Child=2*1+1= !lessPri(Heap[3],Heap[4]): foca na subárvore esq. lesspri(heap[1],heap[3]): troca e chama FixDown sobre a posição 3 AED (IST/DEEC) 19 Acervos (12) Idx=3, Child=3*1+1= lesspri(heap[7],heap[8]): foca na subárvore dir.!lesspri(heap[3],heap[8]): condição de acervo satisfeita AED (IST/DEEC) 20
11 Filas com prioridade por acervo (1) #include Item.h /* aqui o cliente define os dados */ static Item *queue; static int free; /* número de elementos existentes no acervo */ void PQinit(unsigned Size) { queue = (Item *)malloc(size*sizeof(item)); free = 0; } void PQinsert(Item I) { /* insere novo elemento no fim e restabelece ordenação com FixUp */ queue[free] = I; FixUp(queue, free); free++; } AED (IST/DEEC) 21 Filas com prioridade por acervo (2) Item PQdelmax() { /* troca maior elemento com último da tabela e reordena com FixDown */ exch(queue[0], queue[free-1]); FixDown(queue, 0, free-2); /* ultimo elemento não considerado na reordenação */ return queue[--free]; } AED (IST/DEEC) 22
12 Ordenação por acervo (1) O algoritmo de ordenação, usando uma fila com prioridade, é muito simples: 1. Inserir a tabela numa fila com prioridade, implementada por acervo. 2. Chamar PQdelmax() para identificar a tabela inversamente ordenada. void PQsort(Item ptable[], int L, int R) { int Aux; PQinit(R-L+1); for(aux = L; Aux <= R; Aux++) PQinsert(pTable[Aux]); for(aux = R; Aux >= L; Aux--) ptable[aux] = PQdelmax(); } AED (IST/DEEC) 23 Ordenação por acervo (2) Complexidade do processamento: melhor que lg Inicialização: O(1) Inserção: lg 1 + lg lg (< lg ) Retirada dos elementos do acervo: lg lg 2 + lg 1 (< lg ) Complexidade da memória extra:, para o acervo A memória extra pode ser eliminada, se o acervo for construído na própria tabela a ordenar. Primeiro, constroi-se o acervo chamado FixDown na metade inicial da tabela. Depois, troca-se a raiz com o último elemento e faz-se o FixDown sobre a tabela de dimensão menos 1) AED (IST/DEEC) 24
13 Ordenação por acervo (3) void Heapsort(Item Table[], int L, int R) { int Aux, Top = R; /* Constroi acervo na propria tabela, exercendo FixDown na parte inferior */ for(aux = L+(R-L)/2; Aux >= L; Aux--) FixDown(Table, Aux, R); } /* Reordena a tabela, trocando o topo e exercendo FixDown na tabela com dimensão 1 ( na troca, o menor é já colocado na posição final) */ while(top > L){ exch(table[l], Table[Top]); FixDown(Table, L, --Top); } AED (IST/DEEC) 25 Ordenação por acervo (4) Análise da complexidade Construção do acervo custa O() Os k maiores elementos (K<<) podem ser identificados em O(), bastando interromper o 2º ciclo ao fim de k iterações. Ordenação custa sempre O( lg ), qualquer que seja o formato da entrada ver exemplos no Sedgewick.5 AED (IST/DEEC) 26
14 Síntese da Aula 2 de Filas com Prioridade Reposição nos acervos Ascendente Descendente Implementação de filas, com prioridade, por acervos Ordenação por acervo AED (IST/DEEC) 27
Filas com prioridade - Introdução (1)
lgoritmos e struturas de Dados 2013/14 Filas com rioridade - cervos Filas com prioridade - ntrodução (1) Filas com prioridade (riority Queues) usadas em diversas aplicações: Despacho (scheduler) de tarefas.
Leia maisINF 1010 Estruturas de Dados Avançadas
INF 1010 Estruturas de Dados Avançadas Listas de Prioridades e Heaps 1 Listas de Prioridades Em muitas aplicações, dados de uma coleção são acessados por ordem de prioridade A prioridade associada a um
Leia maisEstruturas de Dados Aula 15: Árvores 17/05/2011
Estruturas de Dados Aula 15: Árvores 17/05/2011 Fontes Bibliográficas Livros: Introdução a Estruturas de Dados (Celes, Cerqueira e Rangel): Capítulo 13; Projeto de Algoritmos (Nivio Ziviani): Capítulo
Leia maisBusca em Memória. Secundária
UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA Busca em Memória Secundária e Gomes da Costa yandre@din.uem.br 1 Busca de um item em uma massa de dados que não cabe na memória principal; Procura-se
Leia maisALGORITMOS E ESTRUTURAS DE DADOS CES-11 CES-11 CES-11
ALGORITMOS E ESTRUTURAS DE DADOS Prof. Paulo André Castro pauloac@ita.br Sala 110 Prédio da Computação www.comp.ita.br/~pauloac IECE - ITA Uma árvore binária é: uma árvore vazia; ou uma árvore onde qualquer
Leia maisFila de Prioridade. Siang Wun Song - Universidade de São Paulo - IME/USP. MAC 5710 - Estruturas de Dados - 2008
MAC 5710 - Estruturas de Dados - 2008 Fila de prioridade Fila de prioridade é uma estrutura de dado que mantém uma coleção de elementos, cada um com uma prioridade associada. Valem as operações seguintes.
Leia mais/*(Atenção: Em se tratando de uma lista estaticamente alocada, temos utilizado a estratégia de passa o tamanho máximo do vetor.)*/
========================TDA.H #include "info.h" #define TRUE 1 #define FALSE 0 #define INI_LISTA 1 #define OK 1; #define NOK -1; typedef struct nolista{ info dados; struct nolista *prox; struct nolista
Leia maisLista restrita onde as operações de inserção e retirada são feitas nas extremidades. Deque (fila de final duplo).
1. Uma fila dupla é uma lista linear na qual os elementos podem ser inseridos ou removidos de qualquer etremo. Baseando-se na implementação circular apresentada para filas, codifique uma unidade de rotinas
Leia maisProgramação científica C++
Programação científica C++ NIELSEN CASTELO DAMASCENO Slide 4 Aluno que não sabe programar int main() { cout
Leia maisFILAS DE PRIORIDADE e HEAPS
FILAS DE PRIORIDADE e HEAPS Já estudamos a estrutura fila que fornece os elementos segundo um critério FIFO, da fila removese o elemento mais antigo. Acontece em algumas aplicações que necessitamos de
Leia maisCOS767 - Modelagem e Análise Aula 2 - Simulação. Algoritmo para simular uma fila Medidas de interesse
COS767 - Modelagem e Análise Aula 2 - Simulação Algoritmo para simular uma fila Medidas de interesse Simulação O que é uma simulação? realização da evolução de um sistema estocástico no tempo Como caracterizar
Leia maisCES-11. Algoritmos e Estruturas de Dados. Carlos Alberto Alonso Sanches Juliana de Melo Bezerra
CES-11 Algoritmos e Estruturas de Dados Carlos Alberto Alonso Sanches Juliana de Melo Bezerra CES-11 Pilhas Filas Deques Pilhas,,f filas e deques Vimos que as listas lineares admitem inserção e eliminação
Leia maisÁrvore Binária de Busca
Árvore Binária de Busca 319 Árvore Binária de Busca! construída de tal forma que, para cada nó:! nós com chaves menores estão na sub-árvore esquerda! nós com chaves maiores (ou iguais) estão na subárvore
Leia maisIntrodução à Programação. Armazenamento de Grande Quantidade de Informação Usando Vetores
Introdução à Programação Armazenamento de Grande Quantidade de Informação Usando Vetores Armazenando Grande Quantidade de Informação Como armazenar tanta informação? Vetores! 2 Tópicos da Aula Hoje, aprenderemos
Leia maisListas (Parte 2) Túlio Toffolo tulio@toffolo.com.br www.toffolo.com.br. BCC202 Aula 10 Algoritmos e Estruturas de Dados I
Listas (Parte 2) Túlio Toffolo tulio@toffolo.com.br www.toffolo.com.br BCC202 Aula 10 Algoritmos e Estruturas de Dados I Listas Encadeadas Características: Tamanho da lista não é pré-definido Cada elemento
Leia maisAlgoritmos e Estrutura de Dados. Prof. Tiago A. E. Ferreira
Algoritmos e Estrutura de Dados Aula 7 Estrutura de Dados: Listas Prof. Tiago A. E. Ferreira Introdução Um das formas mais usadas para se manter dados agrupados é a lista Lista de compras, itens de estoque,
Leia maisDAS5102 Fundamentos da Estrutura da Informação
Fila de Prioridade A fila de prioridade nada mais é que uma fila comum que permite que elementos sejam adicionados associados com uma prioridade. Cada elemento na fila deve possuir um dado adicional que
Leia maisFilas: conceitos e implementações
Estrutura de Dados I Filas: conceitos e implementações Cesar Rocha cesar@pontoweb.com.br 1 Objetivos Explorar os conceitos fundamentais acerca do uso de filas utilizando a linguagem C Organização e implementação,
Leia maisMelhores momentos AULA 14
Melhores momentos AULA Problema O algoritmo de Dijkstra resolve o problema da SPT: Dado um vértice s de um digrafo com custos não-negativos nos arcos, encontrar uma SPT com raiz s 5 5 5 Simulação 5 Simulação
Leia maisA Pilha. Aula 02. DPEE 1038 Estrutura de Dados para Automação Curso de Engenharia de Controle e Automação Universidade Federal de Santa Maria
Engenharia de CONTROLE e AUTOMAÇÃO A Pilha Aula 02 DPEE 1038 Estrutura de Dados para Automação Curso de Engenharia de Controle e Automação Universidade Federal de Santa Maria beltrame@mail.ufsm.br 1/5
Leia maisAlgoritmos e Programação
Universidade Federal do Vale do São Francisco Curso de Engenharia da Produção / Elétrica Algoritmos e Programação Parte 05 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti
Leia maisComplexidade de Algoritmos
Complexidade de Algoritmos Complexidade de Algoritmos Envolvendo Estruturas de Dados Elementares Prof. Osvaldo Luiz de Oliveira Estas anotações devem ser complementadas por apontamentos em aula. Vetor
Leia maisFilas de prioridade e heapsort
1 Filas de prioridade e heapsort Além do Sedgewick (sempre leiam o Sedgewick), veja http://www.ime.usp.br/~pf/algoritmos/aulas/hpsrt.html 2 Filas de prioridade e heapsort Fila de prioridade: fila na qual
Leia maisÁrvores Binárias de Busca
Árvores Binárias de Busca Definição Uma Árvore Binária de Busca possui as mesmas propriedades de uma AB, acrescida da seguinte propriedade: Para todo nó da árvore, se seu valor é X, então: Os nós pertencentes
Leia maisEstruturas de Dados. Prof. Gustavo Willam Pereira Créditos: Profa. Juliana Pinheiro Campos
Estruturas de Dados Prof. Gustavo Willam Pereira Créditos: Profa. Juliana Pinheiro Campos Árvores Conceitos Árvores binárias Árvores binárias de pesquisa Árvores binárias balanceadas Árvores ESTRUTURAS
Leia maisB D. Árvores Ordenadas
ÈUYRUHV 'HILQLomR Uma árvore 7 é um conjunto finito contendo um ou mais nós (vértices), onde existe um nó especial denominado UDL] e os demais estão organizados em 1 conjuntos disjuntos (T 1, T 2,...,
Leia maisPROGRAMAÇÃO II 3. FILA DINÂMICA
3. FILA DINÂMICA PROGRAMAÇÃO II Prof. Jean Eduardo Glazar Uma fila é um tipo especial de lista na qual todas as inserções são feitas sempre depois do fim e as deleções no início. Por isso também recebe
Leia maisEstruturas de Dados I
UFES - Curso de verão 2011 Estruturas de Dados I Profa. Juliana Pinheiro Campos jupcampos@gmail.com Árvores binárias de busca (ou São árvores projetadas para dar suporte a operações de busca de forma eficiente.
Leia maisUNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 6 Filas
UNIP - Ciência da Computação e Sistemas de Informação Estrutura de Dados AULA 6 Filas Estrutura de Dados A Estrutura de Dados Fila Fila é uma estrutura de dados usada em programação, que tem regras para
Leia maisProgramação: Estruturas de seleção
Programação de Computadores I Aula 07 Programação: Estruturas de seleção José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/53 Valores booleanos Os valores booleanos
Leia mais2. Execução do algoritmo de Huffman para construção de uma árvore binária (árvore de Huffman).
MC202 - Estruturas de Dados IC UNICAMP Prof.: Neucimar J. Leite Monitor: Lucas Bueno Laboratório Nō 6 1 Códigos de Huffman Uma das aplicações interessantes de árvores binárias é a compactação de arquivos
Leia maisJava Como Programar, 8/E
Capítulo 5 Instruções de controle: Parte 2 Java Como Programar, 8/E (C) 2010 Pearson Education, Inc. Todos os 5.1 Introdução Instrução de repetição for Instrução de repetição do while Instrução de seleção
Leia maisLINGUAGEM C. Estrutura básica de um programa
LINGUAGEM C Estrutura básica de um programa Um programa em linguagem C é constituído por uma sequência de funções (módulos) que em conjunto irão permitir resolver o problema proposto. Estas funções contêm
Leia maisinsfcanceof new public switch transient while byte continue extends for int null
Palavras -chave de JAV A abstract catch do final implements long private static throw void boolean char double finally import native protected super throws volatile break class float insfcanceof new public
Leia maisBusca. Pesquisa sequencial
Busca Banco de dados existem para que, de tempos em tempos, um usuário possa localizar o dado de um registro, simplesmente digitando sua chave. Uma tabela ou um arquivo é um grupo de elementos, cada um
Leia maisPesquisa Sequencial e Binária
Pesquisa Sequencial e Binária Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Aula 20 Algoritmos e Estruturas de Dados I Pesquisa em Memória Primária Introdução - Conceitos Básicos Pesquisa Sequencial
Leia maiscompreender a importância de cada estrutura de controle disponível na Linguagem C;
Aula 3 Estruturas de controle Objetivos Esperamos que, ao final desta aula, você seja capaz de: compreender a importância de cada estrutura de controle disponível na Linguagem C; construir programas em
Leia maisPedro Vasconcelos DCC/FCUP. Programação Funcional 15 a Aula Árvores de pesquisa
Programação Funcional 15 a Aula Árvores de pesquisa Pedro Vasconcelos DCC/FCUP 2014 Árvores binárias Um árvore binária é um grafo dirigido, conexo e acíclico em que cada vértice é de um de dois tipos:
Leia maisPilhas. Profa Morganna Diniz
Pilhas Profa Morganna Diniz Pilhas Geralmente pilhas são úteis em situações em que dados devem ser recuperados em ordem inversa a do armazenamento É uma estrutura de dados linear que permite acesso por
Leia maisFilas. A ordem de saída corresponde diretamente à ordem de entrada dos elementos. Fila de caixa bancário
Filas Fila é um tipo de lista linear onde as inserções são realizadas num extremo (final da Fila) e as remoções restritas ao outro (começo da Fila). O primeiro a entrar é o primeiro a sair e último a entrar
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro. Cartão de fidelização de clientes das distribuidoras de combustível.
Caso de estudo O cartão fidelidade Cartão de fidelização de clientes das distribuidoras de combustível. Definição em JAVA da classe CartaoFidelidade, que deverá apresentar uma funcionalidade semelhante
Leia maisPesquisa em Memória Primária. Algoritmos e Estruturas de Dados II
Pesquisa em Memória Primária Algoritmos e Estruturas de Dados II Pesquisa em Memória Primária Pesquisa: Recuperação de informação em um grande volume de dados Informação é dividida em registros e cada
Leia maisTrabalho 3: Agenda de Tarefas
INF 1620 Estruturas de Dados Semestre 08.2 Trabalho 3: Agenda de Tarefas O objetivo deste trabalho é a implementação de um conjunto de funções para a manipulação de uma agenda de tarefas diárias, de forma
Leia maisLógica para Computação
Lógica para Computação Prof. Celso Antônio Alves Kaestner, Dr. Eng. celsokaestner (at) utfpr (dot) edu (dot) br Especificação de programas Engenharia de Requisitos: como entender e modelar um problema
Leia maisFTL066 Programação em Tempo Real Segunda Lista de Exercícios
FTL066 Programação em Tempo Real Segunda Lista de Exercícios 1) Descreva as diferenças entre tarefas periódicas, aperiódicas e esporádicas esclarecendo as restrições temporais que caracterizam os comportamentos
Leia maisO que é um algoritmo? O que é um programa? Algoritmos. Programas. Aula 1 Tipo Abstrato de Dados
Aula 1 Tipo Abstrato de Dados O que é um algoritmo? Luiz Chaimowicz e Raquel O. Prates Livro Projeto de Algoritmos Capítulo 1 O que é um programa? 2009-1 Algoritmos Sequência de ações executáveis para
Leia maisPedro Vasconcelos DCC/FCUP. Programação Funcional 14 a Aula Tipos abstratos de dados
Programação Funcional 14 a Aula Tipos abstratos de dados Pedro Vasconcelos DCC/FCUP 2012 Tipos concretos de dados Até agora definimos um novo tipo de dados listamos os seus construtores. data Bool = False
Leia maisPilhas. Fabrício J. Barth. BandTec - Faculdade de Tecnologia Bandeirantes
Pilhas Fabrício J. Barth BandTec - Faculdade de Tecnologia Bandeirantes Fevereiro de 2011 Tópicos Principais Introdução Interface do tipo pilha Exemplo de uso: verificação de expressões Implementação de
Leia maisProgramação com Posix Threads
9 Programação com Posix Threads Revisão: Data: 11-03-2016 Cap. 9 1/6 Programação multi-threaded com Pthreads 9.1. O que é uma thread? Um processo represente a execução pelo sistema operativo dum programa.
Leia maisDAS5102 Fundamentos da Estrutura da Informação
Árvores Existe uma ampla variedade de dados que são comumente organizados sob a forma de árvores hierárquicas utilizadas recorrentemente em nosso dia a dia. Exemplos são a organização administrativa de
Leia maisTipo Abstrato de Dados
Tipo Abstrato de Dados David Menotti Algoritmos e Estruturas de Dados II DInf - UFPR Qual a diferença entre um algoritmo e um programa? Algoritmos e Estruturas de Dados Algoritmo: Sequência de ações executáveis
Leia maisINTRODUÇÃO À LINGUAGEM C++
INTRODUÇÃO À LINGUAGEM C++ 1 - VARIÁVEIS Variáveis espaço de memória reservado para armazenar tipos de dados, com um nome para referenciar seu conteúdo. Observações importantes Todas as variáveis devem
Leia maisMétodos Computacionais. Árvores
Métodos Computacionais Árvores Árvores Vetores e Listas são ótimos para representar estrutura de dados lineares, mas não para modelar dados hierárquicos Exemplos de dados hierárquicos: sistema de arquivos
Leia mais9.1.2 Laços Controlados por Entrada: Contador
9.1.2 Laços Controlados por Entrada: Contador Exemplo 2- Escreva um algoritmo e um programa em C que dado um Número qualquer, seja calculado e impresso a tabuada desse número. Algoritmo tabuada Variáveis:
Leia maisÁrvores de Suporte de Custo Mínimo
Árvores de Suporte de Custo Mínimo Pedro Ribeiro DCC/FCUP 2014/2015 Pedro Ribeiro (DCC/FCUP) Árvores de Suporte de Custo Mínimo 2014/2015 1 / 28 Árvore de Suporte Uma árvore de suporte ou árvore de extensão
Leia maisComputação II Orientação a Objetos
Computação II Orientação a Objetos Fabio Mascarenhas - 2014.1 http://www.dcc.ufrj.br/~fabiom/java Introdução Esse não é um curso de Java! O objetivo é aprender os conceitos da programação orientada a objetos,
Leia maisMétodos Computacionais. Fila
Métodos Computacionais Fila Definição de Fila Fila é uma estrutura de dados dinâmica onde: Inserção de elementos se dá no final e a remoção no início O primeiro elemento que entra é o primeiro que sai
Leia maisEstruturas de Dados Pilhas, Filas e Deques
Estruturas de Dados Pilhas, Filas e Deques Prof. Eduardo Alchieri Estruturas de Dados Pilhas Pilhas Lista LIFO (Last In, First Out) Os elementos são colocados na estrutura (pilha) e retirados em ordem
Leia maisAlgoritmos e Estruturas de Dados: Árvore Binária
Algoritmos e Estruturas de Dados: Árvore Binária Exemplo de árvore binária e são os filhos de Altura desta árvore é 4 é a raiz da sub-árvore esquerda de Rômulo Silva de Oliveira Departamento de Automação
Leia maisUnidade IV: Ponteiros, Referências e Arrays
Programação com OO Acesso em Java a BD Curso: Técnico em Informática Campus: Ipanguaçu José Maria Monteiro Pontifícia Universidade Católica do Rio de Janeiro PUC-Rio Departamento Clayton Maciel de Informática
Leia maisPesquisa em Memória Primária. Prof. Jonas Potros
Pesquisa em Memória Primária Prof. Jonas Potros Procedimento para Inserir na Árvore Binária Critérios: Atingir um ponteiro nulo em um processo de pesquisa significa uma pesquisa sem sucesso. O ponteiro
Leia maisfloat vantagem(float candidato[], float concorrente[], int n);
Questão 1 [Valor: 3,0 pontos] O candidato a um cargo eletivo contratou um instituto de pesquisa de opinião para acompanhar seu desempenho durante a campanha eleitoral. Esse instituto realizou n pesquisas
Leia maisEstrutura de Dados Básica
Estrutura de Dados Básica Professor: Osvaldo Kotaro Takai. Aula 9: Filas com Alocação de Memória Estática O objetivo desta aula é apresentar estrutura de dados Fila e suas aplicações. Motivação A estrutura
Leia mais3.4 Representação física: alocação encadeada (dinâmica) Ptlista - variável ponteiro externa que indica o início da lista.
3.4 Representação física: alocação encadeada (dinâmica) As posições de memória são alocadas (ou desalocadas) na medida em que são necessárias (ou dispensadas). Os nós de uma lista encontram-se aleatoriamente
Leia maisEAD Árvore árvore binária
EAD Árvore árvore binária - Uma árvore binária é um conjunto finito de elementos (nodos) que pode ser vazio ou particionado em três subconjuntos: - raiz da árvore (elemento inicial, que é único); - subárvore
Leia maisLinguagem C: variáveis, operadores, entrada/saída. Prof. Críston Algoritmos e Programação
Linguagem C: variáveis, operadores, entrada/saída Prof. Críston Algoritmos e Programação Linguagem C Linguagem de uso geral (qualquer tipo de aplicação) Uma das linguagens mais utilizadas Foi utilizada
Leia mais4 Sistemas de Equações Lineares
Nova School of Business and Economics Apontamentos Álgebra Linear 4 Sistemas de Equações Lineares 1 Definição Rank ou característica de uma matriz ( ) Número máximo de linhas de que formam um conjunto
Leia maisINF 1007 Programação II
INF 1007 Programação II Aula 14 Árvores Binárias Edirlei Soares de Lima Árvores Uma estrutura de dados do tipo árvore permite que dados sejam organizados de maneira hierárquica.
Leia maisGuia de Consulta Rápida C++ STL. Joel Saade. Novatec Editora
Guia de Consulta Rápida C++ STL Joel Saade Novatec Editora Guia de Consulta Rápida C++ STL de Joel Saade Copyright 2006 da Novatec Editora Ltda. Todos os direitos reservados. É proibida a reprodução desta
Leia maisLinguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery
Linguagem de Programação JAVA Técnico em Informática Professora Michelle Nery Agenda Regras paravariáveis Identificadores Válidos Convenção de Nomenclatura Palavras-chaves em Java Tipos de Variáveis em
Leia maisProgramação Gráfica Parte 2 Versão em C 2006 PUCPR Tutoria de Jogos 1º Ano
Programação Gráfica Parte 2 Versão em C 2006 PUCPR Tutoria de Jogos 1º Ano Paulo V. W. Radtke pvwradtke@gmail.com http://www.ppgia.pucpr.br/~radtke/jogos/ AVISO IMPORTANTE!! Esta versão é dedicada exclusivamente
Leia maisSintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc.
Sintaxe Geral Tipos de Dados Comentários Comentários: De linha: // comentário 1 // comentário 2 De bloco: /* linha 1 linha 2 linha n */ De documentação: /** linha1 * linha2 */ Programa Exemplo: ExemploComentario.java
Leia maisINF 1007 Programação II
INF 1007 Programação II Aula 08 Busca em Vetor Edirlei Soares de Lima Busca em Vetor Problema: Entrada: vetor v com n elementos; elemento d a procurar; Saída: m se o elemento procurado
Leia maisComputadores Digitais 2. Prof. Rodrigo de Souza Couto
Computadores Digitais 2 Linguagens de Programação DEL-Poli/UFRJ Prof. Miguel Campista Aula de Hoje Cadeias de caracteres (strings) Caracteres Definição e manipulação de strings Vetor de strings Parâmetros
Leia maisTipos de Dado Abstrato: Listas, Filas e Pilhas
Tipos de Dado Abstrato: Listas, Filas e Pilhas Estruturas de Dados Prof. Vilson Heck Junior Introdução Tradicionalmente conhecidos como Tipos de Dado Abstrato, são algumas Estruturas de Dados básicas e
Leia maisEAD Fila. - algumas operações realizam-se na frente/cabeça e outras na cauda da Fila
EAD Fila - os seus elementos são processados por ordem de chegada: - o primeiro elemento a entrar na Fila é o primeiro a sair - FIFO ( First In First Out ). - algumas operações realizam-se na frente/cabeça
Leia maisFilas. Fabrício J. Barth. BandTec - Faculdade de Tecnologia Bandeirantes
Filas Fabrício J. Barth BandTec - Faculdade de Tecnologia Bandeirantes Março de 2011 Tópicos Principais Introdução Interface do tipo fila Implementação de fila com vetor Implementação de fila com lista
Leia maisElementos de programação em C
Elementos de programação em C Estruturas condicionais Francisco A. C. Pinheiro, Elementos de Programação em C, Bookman, 2012. Visite os sítios do livro para obter material adicional: www.bookman.com.br
Leia maisEstrutura Condicional em Java
Estrutura Condicional em Java Linguagem de Programação 1 O Java contém três tipos de instruções de seleção. A instrução if realiza uma ação se uma condição for verdadeira ou pula a ação se a condição for
Leia maisInteligência Artificial. Metodologias de Busca
Inteligência Artificial Metodologias de Busca 1 Solução de problemas como Busca Um problema pode ser considerado como um objetivo Um conjunto de ações podem ser praticadas para alcançar esse objetivo Ao
Leia maisTabela ASCII de caracteres de controle
Caracteres Estruturas de Dados Aula 6: Cadeias de Caracteres 31/03/2010 Caracteres são representados internamente por códigos numéricos Tipo char (inteiro pequeno ) 1 byte (8 bits) 256 caracteres possíveis
Leia mais2ª Lista de Exercícios
Universidade Federal de Minas Gerais Departamento de Ciência da Computação Algoritmos e Estruturas de Dados II (Turmas M, N, W, F) 1º Semestre de 2012 Profs. Camilo Oliveira, Gisele Pappa, Ítalo Cunha,
Leia maisÇÃO COM OBJECTOS PROGRAMAÇÃ. Programação com Objectos. Programação com Objectos TUDO É UM OBJECTO TUDO É UM OBJECTO ÍNDICE.
PROGRAMAÇÃ ÇÃO COM OBJECTOS TUDO É UM OBJECTO Programação com Objectos ÍNDICE Introdução aos objectos Polimorfismo TUDO É UM OBJECTO Interface e classes internas Instruções de controlo Guardar os objectos
Leia maisLÓGICA DE PROGRAMAÇÃO. Vitor Valerio de Souza Campos
LÓGICA DE PROGRAMAÇÃO Vitor Valerio de Souza Campos Exemplos de algoritmos Faça um algoritmo para mostrar o resultado da multiplicação de dois números. Algoritmo em descrição narrativa Passo 1 Receber
Leia maisINF1007: Programação 2 10 Árvores Binárias. (c) Dept. Informática - PUC-Rio 1
INF1007: Programação 2 10 Árvores Binárias (c) Dept. Informática - PUC-Rio 1 Tópicos Principais Introdução Árvores binárias Representação em C Ordens de percurso em árvores binárias Altura de uma árvore
Leia maisÁrvores Binárias. Observação: Material elaborado a partir do material do Professor Marcos Costa.
Árvores Binárias Observação: Material elaborado a partir do material do Professor Marcos Costa. Árvores Binárias Árvore binária é definida como um conjunto finito de nós que Ou está vazio Ou consiste de
Leia maisÁrvore - Introdução. Teoria dos Grafos. Árvore Livre. Árvore Enraizada. Algumas Definições. Algumas Definições
Árvore - Introdução Árvores Em nosso dia-a-dia nos deparamos com muitos exemplos de árvores: Árvore genealógica. Organograma de uma empresa. Tabela de um torneio esportivo. Na computação: Organização da
Leia maisUm Exemplo de Refatoração. Prof. Alberto Costa Neto DComp/UFS alberto@ufs.br
Um Exemplo de Refatoração Prof. Alberto Costa Neto DComp/UFS alberto@ufs.br Exemplo Programa para calcular e imprimir o valor devido por um cliente de uma vídeo locadora Filme códigopreço:int 1 * * 1 Locação
Leia maisFilas. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR
Filas David Menotti Algoritmos e Estruturas de Dados II DInf UFPR O que é uma fila? 1 4 3 2 Fila 1 2 3 4 O que é uma fila? Fila 1 2 3 4 O que é uma fila? 1 Fila 2 3 4 O que é uma fila? 1 2 Fila 3 4 O que
Leia maisLinguagem C: Árvores Binarias
Instituto de C Linguagem C: Árvores Binarias Luis Martí Instituto de Computação Universidade Federal Fluminense lmarti@ic.uff.br - http://lmarti.com Tópicos Principais Introdução Árvores binárias Implementação
Leia maisAula 13: Ordenação - Heapsort. Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP
Aula 13: Ordenação - Heapsort Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Filas de Prioridades É uma estrutura de dados onde a chave de cada item reflete sua habilidade relativa de abandonar
Leia maisExemplo 1. Um programa que cria uma instância de uma classe que herda da classe Frame
6. Como aplicações gráficas funcionam em Java? Todas as aplicações gráficas em Java usam instâncias de classes existentes, que por serem parte da linguagem podem ser executadas em todas as versões de Java
Leia mais9 Comandos condicionais
9 Comandos condicionais Um comando condicional é uma instrução empregada quando se deseja criar um desvio, isto é, a opção de executar-se ou não um determinado trecho de código, segundo uma condição. Em
Leia maisAta da resolução de exercício
Ata da resolução de exercício Exercício : 6.-3 Aluno: Paulo Gurgel Pinheiro pinheiro@ic.unicamp.br Disciplina: Complexidade de Algoritmos - MO47 Data: 0 de Maio de 009 Enuciado exercício 6.-3 Vamos supor
Leia maisProgramação por Objectos. Java
Programação por Objectos Java Parte 3: Métodos LEEC@IST Java 1/45 Métodos (1) Sintaxe Qualif Tipo Ident ( [ TipoP IdentP [, TipoP IdentP]* ] ) { [ Variável_local Instrução ]* Qualif: qualificador (visibilidade,
Leia mais