Análise Amortizada. Exemplo: Tabelas dinâmicas. Resulta da análise de uma sequência de operações numa estrutura de dados.

Tamanho: px
Começar a partir da página:

Download "Análise Amortizada. Exemplo: Tabelas dinâmicas. Resulta da análise de uma sequência de operações numa estrutura de dados."

Transcrição

1 Análise Amortizada Análise Amortizada Fernando Lobo Algoritmos e Estrutura de Dados II Resulta da análise de uma sequência de operações numa estrutura de dados. Apesar de uma operação individual poder ser dispendiosa, o objectivo é mostrar que em média o custo por operação é pequeno. Porque há poucas operações dispendiosas e muitas operações baratas. Análise Amortizada permite obter a complexidade no pior caso para uma qualquer sequência de operações. 1 / 35 2 / 35 Vários métodos Exemplo: Tabelas dinâmicas Existem vários métodos para fazer este tipo de análise. Vamos estudar três: 1. Método de análise agregada (aggregate analysis) 2. Método contabiĺıstico (accounting method) 3. Método do potencial (potencial method) Problema: Queremos ter uma tabela (por exemplo uma tabela de hash) mas não sabemos à partida quantos elementos é que a tabela poderá ter. A tabela deve ser o mais pequena possível (para não desperdiçar memória), mas também suficientemente grande para não haver overflow (ou sobrecarga no caso de uma tabela de hash). Como resolver o problema? 3 / 35 4 / 35

2 Exemplo: Tabelas dinâmicas Exemplo Uma solução possível: Começamos com uma tabela pequena. Se encher, criamos uma tabela nova (com malloc ou new) e copiam-se os elementos da tabela pequena para a tabela grande. Depois elimina-se a tabela pequena (com free ou delete). Começamos com uma tabela com apenas uma posição. Vamos inserindo elementos. Se a tabela encher, duplicamos o tamanho. 5 / 35 6 / 35 INSERT(1) INSERT(2) Deu overflow. A tabela está cheia. O próximo INSERT não vai caber. Cria-se uma tabela com o dobro do tamanho, copia-se os elementos da tabela antiga, insere-se o novo elemento, e apaga-se a tabela antiga. A nova tabela passa a ter dimensão 2 e contém 2 elementos: 1 e 2. Está cheia novamente. 7 / 35 8 / 35

3 INSERT(3) INSERT(4) Deu overflow. Cria-se uma tabela com o dobro do tamanho, copia-se os elementos da tabela antiga, insere-se o novo elemento, e apaga-se a tabela antiga. A nova tabela passa a ter dimensão 4 e contém 3 elementos: 1, 2, 3. 9 / 35 Não há problema. Insere-se 4. A tabela passa a ter 4 elementos e está novamente cheia. 10 / 35 INSERT(5) INSERT(6) Overflow. Cria-se uma tabela com o dobro do tamanho,... A nova tabela passa a ter dimensão 8 e contém 5 elementos. 11 / 35 Não há problema. Insere-se 6. A tabela passa a ter 6 elementos. 12 / 35

4 INSERT(7), INSERT(8),... Análise do pior caso Consideremos uma sequência de n INSERTs. Estão a ver a ideia. Não é necessário dizer mais nada... No pior caso, um INSERT é Θ(n). Logo, no pior caso n INSERTs é n Θ(n) = Θ(n 2 ) Certo? ERRADO! No pior caso, n INSERTs é apenas Θ(n). 13 / / 35 Análise detalhada Mais fácil de ver um padrão se reescrevermos c i Seja c i = custo do i-ésimo INSERT. c i = { i, se i 1 = 2 k, k N 1, caso contrário i size i c i c i i size i c i Custo de n INSERTs = c i size i é o tamanho da tabela imediatamente após o i-ésimo INSERT. =? 15 / / 35

5 Custo de n INSERTs Análise Amortizada Custo de n INSERTs = c i lg(n 1) = n + = 3n n + 2n = Θ(n). j=0 2 j Qualquer estratégia que permita analisar uma sequência de operações e mostre que o custo médio de uma operação é pequeno (apesar de poder haver operações individuais que são caras) denomina-se de análise amortizada. Logo, o custo médio de cada operação é Θ(n) n = Θ(1). Ao custo médio chamamos custo amortizado. 17 / / 35 Análise Amortizada Análise agregada Apesar de estarmos a fazer médias, isto não tem nada que ver com a análise de complexidade no caso médio. A análise não envolve probabilidades/distribuição de inputs. Análise amortizada dá a performance no pior caso para uma sequência de operações, o que é igual à performance média de cada operação no pior caso. O método que usamos há pouco é o método de análise agregada. Vejamos a análise do mesmo problema com os outros métodos: método contabiĺıstico. método potencial. 19 / / 35

6 Método contabiĺıstico Método contabiĺıstico É a visão do banqueiro. O banco não dá juros. E também não dá empréstimos. A ideia é cobrar um custo fictício ĉ i (custo amortizado) pela operação. 1 Euro corresponde a uma unidade de trabalho (tempo). Isto é, o saldo do banco não pode ser negativo. Ou seja: Esse montante pode ser consumido ao efectuar-se a operação. O que sobrar guarda-se no banco para poder ser usado mais tarde. c i }{{} custo real ĉ i }{{} custo amortizado, n. 21 / / 35 Cobrar um custo fictício de 3 Euros para cada INSERT. 1 Euro é para o INSERT propriamente dito. 2 Euros é para guardar no banco e usar mais tarde quando for necessário duplicar o tamanho da tabela. 1 Euro para mover um item recente. 1 Euro para mover um item antigo. Ver exemplo: 23 / / 35

7 Invariante: O saldo do banco 0. Logo, a soma dos custos amortizados é um limite superior para a soma dos custos reais. Ao inserir o 9 o elemento temos de duplicar o tamanho da tabela. Os 8 Euros que estão no banco dão para mover os 8 elementos na tabela antiga para a tabela nova. i size i c i ĉ i bank i Depois o banco fica com zero Euros. etc / / 35 Método potencial i size i c i ĉ i bank i A primeira operação só necessita de 2 Euros. Mas se dermos 3 Euros também não faz mal. Fazemos o banco ficar com 1 Euro a mais. É uma esmola. Coitados dos bancos É a visão do físico. A ideia é olhar para o montante que está na conta bancária como se fosse energia. A energia fica associada à estrutura de dados no seu todo. 27 / / 35

8 Método potencial Método potencial Começamos com uma estrutura de dados D 0. Operação i transforma D i 1 em D i. Custo real da operação i é c i. Definimos uma função potencial, Φ : {D i } R, de tal forma que: Φ(D 0 ) = 0 Φ(D i ) 0, i O custo amortizado ĉ i é definido por, ĉ i = c i + Φ(D i ) Φ(D i 1 ) }{{} dif. de potencial Φ i Se Φ i > 0, então ĉ i > c i. operação i guarda energia na E.D. para poder usar mais tarde. Se Φ i < 0, então ĉ i < c i. a E.D. gasta energia armazenada para ajudar a pagar o custo real da operação i. 29 / / 35 Método potencial O custo amortizado total das n operações é: Definimos o potencial da tabela imediatamente após o i-ésimo INSERT por: Φ(D i ) = 2i 2 lg i (assumir que 2 lg 0 = 0) ĉ i = = (c i + Φ(D i ) Φ(D i 1 )) ( ) c i + Φ(D n ) Φ(D 0 ) c i, porque Φ(D n ) 0 e Φ(D 0 ) = 0 Nota: Φ(D 0 ) = 0 e Φ(D i ) 0, i 31 / / 35

9 Custo amortizado da i-ésima operação é: Análise por casos ĉ i = c i + Φ(D i ) Φ(D i 1 ) { i, se i 1 for uma potência exacta de 2 = 1, caso contrário ( + 2i 2 lg i ) (2(i 1) 2 lg(i 1) ) = {...} lg i + 2 lg(i 1). } Caso 1: i 1 é uma potência exacta de 2. ĉ i = i lg i + 2 lg(i 1) = i + 2 2(i 1) + (i 1) = i + 2 2i i + 1 = 3. Caso 2: i 1 não é uma potência exacta de 2. ĉ i = lg i + 2 lg(i 1) = 3. (porque neste caso 2 lg i = 2 lg(i 1) ) Logo, n INSERTs custam 3n = Θ(n), no pior caso. 33 / / 35 Qual o método a utilizar na prática? Pode-se usar qualquer método (agregado, contabiĺıstico, potencial). Há situações em que um método pode ser mais apropriado (i.e., mais fácil de aplicar) que outro. 35 / 35

Análise Amortizada. Fernando Lobo. Algoritmos e Estrutura de Dados II. Resulta da análise de uma sequência de operações numa estrutura de dados.

Análise Amortizada. Fernando Lobo. Algoritmos e Estrutura de Dados II. Resulta da análise de uma sequência de operações numa estrutura de dados. Análise Amortizada Fernando Lobo Algoritmos e Estrutura de Dados II 1 / 35 Análise Amortizada Resulta da análise de uma sequência de operações numa estrutura de dados. Apesar de uma operação individual

Leia mais

Análise amortizada CLRS 17. Algoritmos p. 1

Análise amortizada CLRS 17. Algoritmos p. 1 Análise amortizada CLRS 17 Algoritmos p. 1 Análise amortizada Serve para analisar uma sequência de operações ou iterações onde o pior caso individual não reflete o pior caso da sequência. Em outras palavras,

Leia mais

AULA 20. Algoritmos p.725/759

AULA 20. Algoritmos p.725/759 AULA 20 Algoritmos p.725/759 Mais análise amortizada CLR 18 ou CLRS 17 Algoritmos p.726/759 Análise amortizada Análise amortizada = análise do consumo de tempo de uma seqüência de operações Usada nos casos

Leia mais

Análise de Algoritmos

Análise de Algoritmos Algoritmos p. 1/18 Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof. José Coelho de Pina. Algoritmos p. 2/18 Análise amortizada CLRS 17 Algoritmos p.

Leia mais

Análise Amortizada de Complexidade

Análise Amortizada de Complexidade Análise Amortizada de Complexidade Algoritmos e Complexidade LEI-LCC 2010-2011 MBB Novembro de 2010 Introdução Pretende analizar-se uma sequência de operações sobre uma estrutura de dados. Este é, geralmente

Leia mais

Hashing. ACH Introdução à Ciência da Computação II. Delano M. Beder

Hashing. ACH Introdução à Ciência da Computação II. Delano M. Beder ing ACH2002 - Introdução à Ciência da Computação II Delano M. Beder Escola de Artes, Ciências e Humanidades (EACH) Universidade de São Paulo dbeder@usp.br 11/2008 Material baseado em slides do professor

Leia mais

Divisão e Conquista. Fernando Lobo. Algoritmos e Estrutura de Dados II. É uma técnica para resolver problemas (veremos outras técnicas mais adiante).

Divisão e Conquista. Fernando Lobo. Algoritmos e Estrutura de Dados II. É uma técnica para resolver problemas (veremos outras técnicas mais adiante). Divisão e Conquista Fernando Lobo Algoritmos e Estrutura de Dados II 1 / 27 Divisão e Conquista É uma técnica para resolver problemas (veremos outras técnicas mais adiante). Consiste em 3 passos: Dividir

Leia mais

Estruturas de dados para listas arrays e listas ligadas

Estruturas de dados para listas arrays e listas ligadas Estruturas de dados para listas arrays e listas ligadas Fernando Lobo Algoritmos e Estrutura de Dados Algumas figuras retiradas do livro Introduction to Algorithms, 3rd Edition. 1 / 29 Listas Uma lista

Leia mais

INF70 Gerenciamento de Banco de Dados 2 Índices baseados em Hash

INF70 Gerenciamento de Banco de Dados 2 Índices baseados em Hash INF70 Gerenciamento de Banco de Dados Índices baseados em Hash Ilmério Reis da Silva ilmerio@facom.ufu.br www.facom.ufu.br/~ilmerio/gbd Roteiro Fundamentos Hash Estático Hash Extensível Hash Linear Considerações

Leia mais

GBC053 Gerenciamento de Banco de Dados Índices baseados em Hash

GBC053 Gerenciamento de Banco de Dados Índices baseados em Hash GBC053 Gerenciamento de Banco de Dados Índices baseados em Hash Ilmério Reis da Silva ilmerio@facom.ufu.br www.facom.ufu.br/~ilmerio/gbd UFU/FACOM/BCC UFU/FACOM/BCC GBD Página: Roteiro Fundamentos Hash

Leia mais

Tabelas Hash Endereçamento Direto

Tabelas Hash Endereçamento Direto Tabelas Hash Endereçamento Direto ACH2002 - Introdução à Ciência da Computação II Delano M. Beder Escola de Artes, Ciências e Humanidades (EACH) Universidade de São Paulo dbeder@usp.br 11/2008 Material

Leia mais

10 a Aula - Operadores de Molde ( Casting ). Atribuição de Memória. Ponteiros. Enumerados. Mestrado em Engenharia Física Tecnológica

10 a Aula - Operadores de Molde ( Casting ). Atribuição de Memória. Ponteiros. Enumerados. Mestrado em Engenharia Física Tecnológica 10 a Aula - Operadores de Molde ( Casting ). Atribuição de Memória. Ponteiros. Enumerados. Programação Mestrado em Engenharia Física Tecnológica Samuel M. Eleutério sme@tecnico.ulisboa.pt Departamento

Leia mais

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

Lista Ordenada. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35 Lista Ordenada Estrutura de Dados Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35 Conteúdo Definição Operações Representações Contígua Encadeada Aplicação Exercícios 2

Leia mais

Algoritmos Greedy. Pedro Ribeiro 2014/2015 DCC/FCUP. Pedro Ribeiro (DCC/FCUP) Algoritmos Greedy 2014/ / 40

Algoritmos Greedy. Pedro Ribeiro 2014/2015 DCC/FCUP. Pedro Ribeiro (DCC/FCUP) Algoritmos Greedy 2014/ / 40 Algoritmos Greedy Pedro Ribeiro DCC/FCUP 2014/2015 Pedro Ribeiro (DCC/FCUP) Algoritmos Greedy 2014/2015 1 / 40 Algoritmos Greedy Vamos falar de algoritmos greedy. Em português são conhecidos como: Algoritmos

Leia mais

Comparação com Divisão e Conquista

Comparação com Divisão e Conquista Programação Dinâmica Programação Dinâmica Fernando Lobo Algoritmos e Estrutura de Dados II Outra técnica de concepção de algoritmos, tal como Divisão e Conquista ou Estratégias Greedy. O termo Programação

Leia mais

O termo Programação Dinâmica é um bocado infeliz.

O termo Programação Dinâmica é um bocado infeliz. Programação Dinâmica Fernando Lobo Algoritmos e Estrutura de Dados II 1 / 18 Programação Dinâmica Outra técnica de concepção de algoritmos, tal como Divisão e Conquista ou Estratégias Greedy. O termo Programação

Leia mais

MC102 Aula 26. Instituto de Computação Unicamp. 17 de Novembro de 2016

MC102 Aula 26. Instituto de Computação Unicamp. 17 de Novembro de 2016 MC102 Aula 26 Recursão Instituto de Computação Unicamp 17 de Novembro de 2016 Roteiro 1 Recursão Indução 2 Recursão 3 Fatorial 4 O que acontece na memória 5 Recursão Iteração 6 Soma em um Vetor 7 Números

Leia mais

Introdução às Finanças

Introdução às Finanças Introdução às Finanças Aula Teórica Esta informação é restrita ou confidencial, não podendo ser duplicada, publicada ou fornecida total ou parcialmente a terceiros sem o prévio consentimento dos autores.

Leia mais

Análise de Algoritmos

Análise de Algoritmos Algoritmos p. 1/28 Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof. José Coelho de Pina. Algoritmos p. 2/28 Análise de Algoritmos CLRS 7 Essas transparências

Leia mais

Programação Estruturada

Programação Estruturada Programação Estruturada Recursão Professores Emílio Francesquini e Carla Negri Lintzmayer 2018.Q3 Centro de Matemática, Computação e Cognição Universidade Federal do ABC Recursão Recursão 1 Recursão 2

Leia mais

Universidade Estadual do Oeste do Parana - UNIOESTE Jhonata R.de Peder Marcelo Schuck

Universidade Estadual do Oeste do Parana - UNIOESTE Jhonata R.de Peder Marcelo Schuck Universidade Estadual do Oeste do Parana - UNIOESTE Jhonata R.de Peder Marcelo Schuck Banco dedados I Estruturas de Índices para Arquivos Cascavel - Pr 2009 Sumário Introdução; Índices Ordenados de nível

Leia mais

Sequências e Séries Infinitas. Copyright Cengage Learning. Todos os direitos reservados.

Sequências e Séries Infinitas. Copyright Cengage Learning. Todos os direitos reservados. 11 Sequências e Séries Infinitas Copyright Cengage Learning. Todos os direitos reservados. 11.6 Convergência Absoluta e os Testes da Razão e da Raiz Copyright Cengage Learning. Todos os direitos reservados.

Leia mais

André Vignatti DINF- UFPR

André Vignatti DINF- UFPR Notação Assintótica: Ω, Θ André Vignatti DINF- UFPR Limitantes Inferiores Considere o seguinte trecho de código: void main () { /* trecho que le N da entrada padrao */ for (i = 0 ; i< N; i++) puzzle(i);

Leia mais

Heaps binomiais. Gabriel Pedro de Castro. 20 de setembro de 2007

Heaps binomiais. Gabriel Pedro de Castro. 20 de setembro de 2007 20 de setembro de 2007 Árvores binomiais são formados por uma lista ligada de á r v o r e s binomiais. Definição Árvores binomiais são definidas recursivamente da seguinte forma: Árvores binomiais são

Leia mais

ACH2024. Aula 22 Hashing Externo - Hashing estático e dinâmico (extensível) Prof Helton Hideraldo Bíscaro

ACH2024. Aula 22 Hashing Externo - Hashing estático e dinâmico (extensível) Prof Helton Hideraldo Bíscaro ACH04 Aula Hashing Externo - Hashing estático e dinâmico (extensível) Prof Helton Hideraldo Bíscaro 1 Tipos de organização de arquivos Sequencial Lista ligada (com ou sem tabela de alocação) Indexada Um

Leia mais

Análise e Complexidade de Algoritmos

Análise e Complexidade de Algoritmos Análise e Complexidade de Algoritmos Professor Ariel da Silva Dias Algoritmos Divisão e Conquista Construção incremental Resolver o problema para um sub-conjunto dos elementos de entrada; Então, adicionar

Leia mais

Capítulo 2. Representação de dados em sistemas computacionais

Capítulo 2. Representação de dados em sistemas computacionais Capítulo 2 Representação de dados em sistemas computacionais Adaptado dos transparentes das autoras do livro The Essentials of Computer Organization and Architecture Objectivos [1] Saber somar números

Leia mais

HASHING HASHING 6/10/2008

HASHING HASHING 6/10/2008 Hashing é uma técnica que busca realizar as operações de inserção, remoção e busca em tempo constante. Motivação - Acesso Direto: Suponha que existam n chaves a serem armazenadas em uma tabela T, seqüencial

Leia mais

Algoritmos e Estrutura de Dados. Algoritmos Prof. Tiago A. E. Ferreira

Algoritmos e Estrutura de Dados. Algoritmos Prof. Tiago A. E. Ferreira Algoritmos e Estrutura de Dados Aula 3 Conceitos Básicos de Algoritmos Prof. Tiago A. E. Ferreira Definição de Algoritmo Informalmente... Um Algoritmo é qualquer procedimento computacional bem definido

Leia mais

4. Corpos finitos. Aula 22 - Álgebra II. [Conclusão da aula anterior: exemplos de polinómios resolúveis e polinómios não resolúveis]

4. Corpos finitos. Aula 22 - Álgebra II. [Conclusão da aula anterior: exemplos de polinómios resolúveis e polinómios não resolúveis] [Conclusão da aula anterior: exemplos de polinómios resolúveis e polinómios não resolúveis] Corpos finitos Neste capítulo final vamos estudar as propriedades fundamentais dos corpos finitos e descrever

Leia mais

ESTRUTURAS DE DADOS E ALGORITMOS HEAP BINÁRIA

ESTRUTURAS DE DADOS E ALGORITMOS HEAP BINÁRIA ESTRUTURAS DE DADOS E ALGORITMOS 1 HEAP BINÁRIA Adalberto Cajueiro Departamento de Sistemas e Computação Universidade Federal de Campina Grande HEAP BINÁRIA É uma árvore binária satisfazendo duas propriedades:

Leia mais

Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches

Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches CT-234 Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural Carlos Alberto Alonso Sanches CT-234 2) Algoritmos recursivos Indução matemática, recursão, recorrências Indução matemática Uma

Leia mais

Grafos. Notas. Notas. Notas. Notas. Caminhos mais curtos de única origem. Subestrutura ótima. Propriedades de caminhos mais curtos

Grafos. Notas. Notas. Notas. Notas. Caminhos mais curtos de única origem. Subestrutura ótima. Propriedades de caminhos mais curtos Grafos Caminhos mais curtos de única origem Conteúdo Subestrutura ótima Inicialização Propriedades de caminhos mais curtos Algoritmos Algoritmo de Bellman-Ford Caminhos mais curtos de única origem em gaos

Leia mais

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

Ordenação: Heapsort. Algoritmos e Estruturas de Dados II Ordenação: Heapsort Algoritmos e Estruturas de Dados II Introdução Possui o mesmo princípio de funcionamento da ordenação por seleção Selecione o menor item do vetor Troque-o pelo item da primeira posição

Leia mais

CIC 111 Análise e Projeto de Algoritmos II

CIC 111 Análise e Projeto de Algoritmos II CIC 111 Análise e Projeto de Algoritmos II Prof. Roberto Affonso da Costa Junior Universidade Federal de Itajubá AULA 16 Directed graphs Topological sorting Dynamic programming Successor paths Cycle detection

Leia mais

AV3 - MA p k = C 40,k 3 UMA SOLUÇÃO 40! 40! 3 3 > k 2

AV3 - MA p k = C 40,k 3 UMA SOLUÇÃO 40! 40! 3 3 > k 2 AV - MA 2-202 Questão. Uma moeda, com probabilidade de dar cara, é lançada 40 vezes. (a) Explique por que a probabilidade p k de se obter k caras nos 40 lançamentos é dada por para k = 0,, 2,..., 40. p

Leia mais

Aula 16. Ficheiros de texto

Aula 16. Ficheiros de texto Aula 16 Aprender Empreender 1 Ficheiros de texto Ficheiros de texto Nos ficheiros de texto a informação é guardada sob a forma de linhas de texto, separadas por um carácter terminador de linha, '\n' (

Leia mais

Algoritmo. Exemplo. Definição. Programação de Computadores Comparando Algoritmos. Alan de Freitas

Algoritmo. Exemplo. Definição. Programação de Computadores Comparando Algoritmos. Alan de Freitas Algoritmos Programação de Computadores Comparando Algoritmos Um algoritmo é um procedimento de passos para cálculos. Este procedimento é composto de instruções que definem uma função Até o momento, vimos

Leia mais

Hashing. Cormen Capítulo 11

Hashing. Cormen Capítulo 11 Hashing Cormen Capítulo 11 Motivação Um compilador utiliza uma tabela de símbolos para relacionar símbolos aos dados associados. Símbolos: nomes de variáveis, funções, etc.. Dados associados: localização

Leia mais

Ponteiro e lista dinâmica

Ponteiro e lista dinâmica UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa yandre@din.uem.br Prof. Yandre Maldonado - 2 Ponteiro é uma variável que

Leia mais

Tabelas de Dispersão. Algoritmos e Estruturas de Dados Verão Cátia Vaz 1

Tabelas de Dispersão. Algoritmos e Estruturas de Dados Verão Cátia Vaz 1 Tabelas de Dispersão Algoritmos e Estruturas de Dados Verão 2012 1 Tabelas de endereçamento directo Endereçamento directo é usado quando o universo de chaves é pequeno e todas as chaves são distintas:

Leia mais

Análise de Complexidade. Algoritmos e Estruturas de Dados Flavio Figueiredo (http://flaviovdf.github.io)

Análise de Complexidade. Algoritmos e Estruturas de Dados Flavio Figueiredo (http://flaviovdf.github.io) Análise de Complexidade Algoritmos e Estruturas de Dados 2 2017-1 Flavio Figueiredo (http://flaviovdf.github.io) 1 Lembrando da aula passada Criamos um Banco Simples TAD para Conta Corrente 2 conta_bancaria.h

Leia mais

5 Séries de Pagamentos

5 Séries de Pagamentos 5 Séries de agamentos Agora vamos estudar as operações financeiras que envolvem pagamentos ou recebimentos parcelados. Consideremos os pagamentos, 2,, n nas datas, 2,, n, respectivamente de um Valor resente

Leia mais

Filas de Prioridade. Uma fila de prioridade pode ser vista como uma generalização das filas com as seguintes duas operações:

Filas de Prioridade. Uma fila de prioridade pode ser vista como uma generalização das filas com as seguintes duas operações: Filas de Prioridade e Heaps 9.1 Filas de Prioridade Uma fila de prioridade pode ser vista como uma generalização das filas com as seguintes duas operações: inserir um elemento na fila; remover o elemento

Leia mais

Algoritmos e Estrutura de Dados. Aula 04 Recorrência Prof. Tiago A. E. Ferreira

Algoritmos e Estrutura de Dados. Aula 04 Recorrência Prof. Tiago A. E. Ferreira Algoritmos e Estrutura de Dados Aula 04 Recorrência Prof. Tiago A. E. Ferreira Esta Aula... Nesta aula veremos três métodos para resolver recorrência: Método da substituição É suposto um limite hipotético

Leia mais

SME0801- Probabilidade II Distribuições conjuntas. Primeiras definições e propriedades

SME0801- Probabilidade II Distribuições conjuntas. Primeiras definições e propriedades SME0801- Probabilidade II Distribuições conjuntas. Primeiras definições e propriedades Pablo Martin Rodriguez SME ICMC USP Bacharelado em Estatística 20 Mar 2017 Vetores aleatórios Definição Sejam X 1,

Leia mais

HASHING Hashing Motivação - Acesso Direto:

HASHING Hashing Motivação - Acesso Direto: Hashing é uma técnica que busca realizar as operações de inserção, remoção e busca em tempo constante. Motivação - Acesso Direto: Suponha que existam n chaves a serem armazenadas em uma tabela T, seqüencial

Leia mais

Ponteiros e Tabelas. K&R: Capitulo 5 IAED, 2012/2013

Ponteiros e Tabelas. K&R: Capitulo 5 IAED, 2012/2013 Ponteiros e Tabelas K&R: Capitulo 5 Ponteiros e Tabelas Ponteiros e endereços Ponteiros e argumentos de funções Ponteiros e tabelas Alocação dinâmica de memória Aritmética de ponteiros Tabelas de ponteiros

Leia mais

Ponteiros e Tabelas. K&R: Capitulo 5 IAED, 2012/2013

Ponteiros e Tabelas. K&R: Capitulo 5 IAED, 2012/2013 Ponteiros e Tabelas K&R: Capitulo 5 Ponteiros e Tabelas Ponteiros e endereços Ponteiros e argumentos de funções Ponteiros e tabelas Alocação dinâmica de memória Aritmética de ponteiros Tabelas de ponteiros

Leia mais

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

Filas de prioridade. Marcelo K. Albertini. 27 de Novembro de 2014 Filas de prioridade Marcelo K. Albertini de Novembro de / Filas de prioridade O que é uma fila de prioridade? Estrutura de dados que generaliza a ideia de ordenação. Coleções de elementos: inserir e remover

Leia mais

MC-102 Aula 20 Ponteiros III

MC-102 Aula 20 Ponteiros III MC-102 Aula 20 Ponteiros III Instituto de Computação Unicamp 20 de Outubro de 2016 Roteiro 1 Exemplo de Ponteiros e Alocação Dinâmica 2 Exercício 3 Informações Extras: Ponteiros para Ponteiros e Alocação

Leia mais

PROJETO E ANÁLISE DE ALGORITMOS (INF 2926)

PROJETO E ANÁLISE DE ALGORITMOS (INF 2926) PUC-Rio Departamento de Informática Prof. Marcus Vinicius S. Poggi de Aragão Horário: 4as-feiras de 13 às 16 horas - Sala 511 RDC 29 de abril de 2015 Data da Entrega: 10 de junho de 2015 Período: 2015.1

Leia mais

Filas de prioridade. Marcelo K. Albertini. 3 de Dezembro de 2013

Filas de prioridade. Marcelo K. Albertini. 3 de Dezembro de 2013 Filas de prioridade Marcelo K. Albertini de Dezembro de / Filas de prioridade O que é uma fila de prioridade? Estrutura de dados que generaliza a ideia de ordenação. Coleções de elementos: inserir e remover

Leia mais

TAD dicionário. Métodos do TAD dicionário:

TAD dicionário. Métodos do TAD dicionário: TAD dicionário O TAD dicionário modela uma coleção buscável de itens chave-elemento As principais operações em dicionários são busca, inserção e remoção de itens Vários itens com a mesma chave são permitidos

Leia mais

Complexidade de Tempo e Espaço

Complexidade de Tempo e Espaço Complexidade de Tempo e Espaço Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG) Complexidade de Tempo e Espaço junho - 2018 1 / 43 Este material é preparado usando

Leia mais

Tabela Hash. Disciplina: Estruturas de Dados Professora: Camila Taumaturgo M.Sc.

Tabela Hash. Disciplina: Estruturas de Dados Professora: Camila Taumaturgo   M.Sc. Tabela Hash Disciplina: Estruturas de Dados Professora: Camila Taumaturgo email: camila.taumaturgo@ifrn.edu.br Sumário Tabela Hash Introdução Princípios de funcionamento Funções de Dispersão Tratamento

Leia mais

Árvores Binárias. Algoritmos e Estruturas de Dados Flavio Figueiredo (http://flaviovdf.github.io)

Árvores Binárias. Algoritmos e Estruturas de Dados Flavio Figueiredo (http://flaviovdf.github.io) Árvores Binárias Algoritmos e Estruturas de Dados 2 201-1 Flavio Figueiredo (http://flaviovdf.github.io) 1 Árvores 2 Raíz 3 Folhas 4 Nós Internos 5 Pais e Filhos 6 Descendentes Ancestrais 8 Irmãos 9 Níveis

Leia mais

Análise e Projeto de Algoritmos

Análise e Projeto de Algoritmos Análise e Projeto de Algoritmos Mestrado em Ciência da Computação Prof. Dr. Aparecido Nilceu Marana Faculdade de Ciências I think the design of efficient algorithms is somehow the core of computer science.

Leia mais

Algoritmos de Caminho Mínimo Parte 1

Algoritmos de Caminho Mínimo Parte 1 Algoritmos de Caminho Mínimo Parte 1 A journey of a thousand miles starts with a single step and if that step is the right step, it becomes the last step. Index 1. Introduction 2. Applications 3. Tree

Leia mais

Vamos estudar o que se entende por «programação», que é uma linguagem de programação e ver algumas terminologias própria de programação e como

Vamos estudar o que se entende por «programação», que é uma linguagem de programação e ver algumas terminologias própria de programação e como Vamos estudar o que se entende por «programação», que é uma linguagem de programação e ver algumas terminologias própria de programação e como utilizá-la. 1 Por si só, uma equipe não é muito inteligente.

Leia mais

Árvores B. Árvores B. Estrutura de Dados II Jairo Francisco de Souza

Árvores B. Árvores B. Estrutura de Dados II Jairo Francisco de Souza Árvores B Árvores B Estrutura de Dados II Jairo Francisco de Souza Motivação Quando tabelas são muito grandes Armazenamento do conjunto de chaves não pode ser efetuado na memória principal Necessário uso

Leia mais

Derivadas de funções reais de variável real

Derivadas de funções reais de variável real Derivadas de funções reais de variável real O conceito de derivada tem grande importância pelas suas inúmeras aplicações em Matemática, em Física e em muitas outras ciências. Neste capítulo vamos dar a

Leia mais

Fernando Lobo. Algoritmos e Estrutura de Dados. Outra técnica de concepção de algoritmos, tal como Divisão e Conquista.

Fernando Lobo. Algoritmos e Estrutura de Dados. Outra técnica de concepção de algoritmos, tal como Divisão e Conquista. Programação Dinâmica Fernando Lobo Algoritmos e Estrutura de Dados 1 / 56 Programação Dinâmica Outra técnica de concepção de algoritmos, tal como Divisão e Conquista. O termo Programação Dinâmica é um

Leia mais

Estruturas de dados para conjuntos disjuntos. Estruturas de Dados para Conjuntos Disjuntos. Estruturas de dados para conjuntos disjuntos

Estruturas de dados para conjuntos disjuntos. Estruturas de Dados para Conjuntos Disjuntos. Estruturas de dados para conjuntos disjuntos Estruturas de dados para conjuntos disjuntos Estruturas de Dados para Conjuntos Disjuntos Fernando Lobo Algoritmos e Estrutura de Dados II Também conhecido por UNION-FIND. Objectivo: Manter uma colecção

Leia mais

Diagrama de Fluxo de Caixa Fluxo de caixa é uma sucessão temporal de entradas e de saídas de dinheiro no caixa de uma entidade.

Diagrama de Fluxo de Caixa Fluxo de caixa é uma sucessão temporal de entradas e de saídas de dinheiro no caixa de uma entidade. Séries de agamentos Agora vamos estudar as operações financeiras que envolvem pagamentos ou recebimentos parcelados. Consideremos os pagamentos, 2,, n nas datas, 2,, n, respectivamente de um Valor resente

Leia mais

Algoritmos e Estrutura de Dados. Aula 11 Estrutura de Dados: Tabelas Hash Parte II Prof. Tiago A. E. Ferreira

Algoritmos e Estrutura de Dados. Aula 11 Estrutura de Dados: Tabelas Hash Parte II Prof. Tiago A. E. Ferreira Algoritmos e Estrutura de Dados Aula 11 Estrutura de Dados: Tabelas Hash Parte II Prof. Tiago A. E. Ferreira Introdução Como visto na aula passada as tabelas hash: Diminuem a quantidade de endereçamento

Leia mais

Hashing Endereçamento Direto Tabelas Hash

Hashing Endereçamento Direto Tabelas Hash Hashing Endereçamento Direto Tabelas Hash Professora: Fátima L. S. Nunes 1 1 1 Vimos até agora: Introdução Conceitos e técnicas de Orientação a Objetos Conceitos e aplicações de Complexidade Assintótica

Leia mais

Luís Fernando Schultz Xavier da Silveira. 12 de maio de 2010

Luís Fernando Schultz Xavier da Silveira. 12 de maio de 2010 Monóides e o Algoritmo de Exponenciação Luís Fernando Schultz Xavier da Silveira Departamento de Informática e Estatística - INE - CTC - UFSC 12 de maio de 2010 Conteúdo 1 Monóides Definição Propriedades

Leia mais

Sequências e Séries Infinitas. Copyright Cengage Learning. Todos os direitos reservados.

Sequências e Séries Infinitas. Copyright Cengage Learning. Todos os direitos reservados. 11 Sequências e Séries Infinitas Copyright Cengage Learning. Todos os direitos reservados. 11.3 O Teste da Integral e Estimativas de Somas Copyright Cengage Learning. Todos os direitos reservados. O Teste

Leia mais

Elementos de Matemática Finita

Elementos de Matemática Finita Elementos de Matemática Finita Exercícios Resolvidos 1 - Algoritmo de Euclides; Indução Matemática; Teorema Fundamental da Aritmética 1. Considere os inteiros a 406 e b 654. (a) Encontre d mdc(a,b), o

Leia mais

Estruturas de Dados II

Estruturas de Dados II Estruturas de Dados II Rodrigo Porfírio da Silva Sacchi rodrigosacchi@ufgd.edu.br 3410-2086 Aula 2: Árvores http://www.do.ufgd.edu.br/rodrigosacchi Árvores Definição: Árvores Uma árvore T é um conjunto

Leia mais

Enumerabilidade. Capítulo 6

Enumerabilidade. Capítulo 6 Capítulo 6 Enumerabilidade No capítulo anterior, vimos uma propriedade que distingue o corpo ordenado dos números racionais do corpo ordenado dos números reais: R é completo, enquanto Q não é. Neste novo

Leia mais

Divisão e Conquista: Par de Pontos mais Próximo

Divisão e Conquista: Par de Pontos mais Próximo Divisão e Conquista: Par de Pontos mais Próximo Fernando Lobo Algoritmos e Estrutura de Dados II 1 / 18 Divisão e Conquista (cont.) Problema: Dado um conjunto de pontos no plano, obter o par de pontos

Leia mais

Quick Sort. Considerações Sobre Algoritmos de Ordenação. Estagiário PAE: Jesimar da S. Arantes Professor: Claudio Quick F. M.

Quick Sort. Considerações Sobre Algoritmos de Ordenação. Estagiário PAE: Jesimar da S. Arantes Professor: Claudio Quick F. M. Quick Sort Considerações Sobre Algoritmos de Ordenação Professor: Claudio F. M. Toledo 26 de Outubro de 2016 Professor: Claudio Quick F. M. Sort Toledo 26 de Outubro de 2016 1 / 14 Quicksort: Escolha do

Leia mais

Árvores B. Árvores B. Estrutura de Dados II Jairo Francisco de Souza

Árvores B. Árvores B. Estrutura de Dados II Jairo Francisco de Souza Árvores B Árvores B Estrutura de Dados II Jairo Francisco de Souza Motivação Quando tabelas são muito grandes Armazenamento do conjunto de chaves não pode ser efetuado na memória principal Necessário uso

Leia mais

Curso Satélite de. Matemática. Sessão n.º 1. Universidade Portucalense

Curso Satélite de. Matemática. Sessão n.º 1. Universidade Portucalense Curso Satélite de Matemática Sessão n.º 1 Universidade Portucalense Conceitos Algébricos Propriedades das operações de números reais Considerem-se três números reais quaisquer, a, b e c. 1. A adição de

Leia mais

3. ANÁLISE DE COMPLEXIDADE PESSIMISTA

3. ANÁLISE DE COMPLEXIDADE PESSIMISTA 3. ANÁLISE DE COMPLEXIDADE PESSIMISTA Este capítulo introduz uma metodologia para analisar a complexidade pessimista (i. e. no pior caso) de um algoritmo com base em sua estrutura. O processo de construção

Leia mais

AULA 24. Algoritmos p.856/905

AULA 24. Algoritmos p.856/905 AULA 24 Algoritmos p.856/905 Máximo divisor comum CLRS 31.1 e 31.2 Algoritmos p.857/905 Divisibilidade Suponha que a, b e d são números inteiros. Dizemos que d divide a se a = k d para algum número inteiro

Leia mais

Matemática Financeira

Matemática Financeira Matemática Financeira Juros Simples Professor Edgar Abreu www.acasadoconcurseiro.com.br Matemática Financeira CAPITALIZAÇÃO SIMPLES X CAPITALIZAÇÃO COMPOSTA A definição de capitalização é uma operação

Leia mais

i a[i]

i a[i] Técnicas de Hashing Outra forma de se fazer busca em uma tabela, é construir-se a tabela de forma a facilitar a busca, colocando-se cada elemento numa posição pré-determinada. Tal posição é obtida aplicando-se

Leia mais

Quanto custa investir: comparativo entre bancos, corretoras (e uma fintech!)

Quanto custa investir: comparativo entre bancos, corretoras (e uma fintech!) Quanto custa investir: comparativo entre bancos, corretoras (e uma fintech!) 1ª EDIÇÃO / 2016 POR QUE BAIXO CUSTO É IMPORTANTE Custo é uma das poucas variáveis que o investidor pode ter total controle

Leia mais

Ordenação e Busca em Arquivos

Ordenação e Busca em Arquivos Ordenação e Busca em Arquivos Cristina D. A. Ciferri Thiago A. S. Pardo Leandro C. Cintra M.C.F. de Oliveira Moacir Ponti Jr. Exemplos de Busca Registros de tamanho fixo M A R I A R U A b 1 S A O b C A

Leia mais

Linguagem Universal. assim como a entrada ser processada por a. (b) A segunda fita de representa a fita de

Linguagem Universal. assim como a entrada ser processada por a. (b) A segunda fita de representa a fita de Linguagem Universal 1. Uma máquina de Turing representa um PC? Ou representa um possível problema que um PC pode resolver? 2. Uma máquina de Turing pode ser utilizada para simular uma de Turing máquina.

Leia mais

Lista de Exercícios 6: Soluções Funções

Lista de Exercícios 6: Soluções Funções UFMG/ICEx/DCC DCC Matemática Discreta Lista de Exercícios 6: Soluções Funções Ciências Exatas & Engenharias o Semestre de 06 Conceitos. Determine e justifique se a seguinte afirmação é verdadeira ou não

Leia mais

Tabelas Hash. Prof. Túlio Toffolo BCC202 Aulas 23 e 24 Algoritmos e Estruturas de Dados I

Tabelas Hash. Prof. Túlio Toffolo  BCC202 Aulas 23 e 24 Algoritmos e Estruturas de Dados I Tabelas Hash Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Aulas 23 e 24 Algoritmos e Estruturas de Dados I Pesquisa em Memória Primária Introdução - Conceitos Básicos Pesquisa Sequencial Pesquisa

Leia mais

C com introdução a OO

C com introdução a OO ... Centro Integrado de Tecnologia da Informação C com introdução a OO ... Centro Integrado de Tecnologia da Informação Aula 9 Ronald Dener - Instrutor Matheus Soares - Monitor 17 / outubro 17 / outubro

Leia mais

Árvores Binárias de Busca

Árvores Binárias de Busca 0. Um breve comentário sobre os algoritmos de busca em tabelas De uma maneira geral, realizam-se operações de busca, inserção e remoção de elementos numa tabela. A busca sequencial tradicional é O(N).

Leia mais

Vamos aos Gritos. Quem são os números quânticos? Os números quânticos são as soluções da equação de Schrondinger que

Vamos aos Gritos. Quem são os números quânticos? Os números quânticos são as soluções da equação de Schrondinger que Disciplina de Física e Química A 10ºAno Ano lectivo 2014/2015 Vamos aos Gritos Números Quânticos!!! Quem são os números quânticos? Os números quânticos são as soluções da equação de Schrondinger que indicam

Leia mais

Fundamentos de Programação

Fundamentos de Programação Fundamentos de Programação Soluções do primeiro teste 13 de Novembro de 2004 9:00-10:30 Nota Número: 20 Nome: Turma: Escreva o seu número em todas as folhas do teste. O espaço das respostas deve ser limitado

Leia mais

Campo Escalar Complexo

Campo Escalar Complexo Finalmente consideremos: Teoria Quântica de Campos I 60 operador na representação de Schödinger, basta partir de 59.2 e usar lembrando que: É uma superposição de vários estados de uma partícula (cada um

Leia mais

ESTRUTURA DE DADOS E ALGORITMOS ÁRVORES BALANCEADAS. Cristina Boeres

ESTRUTURA DE DADOS E ALGORITMOS ÁRVORES BALANCEADAS. Cristina Boeres ESTRUTURA DE DADOS E ALGORITMOS ÁRVORES BALANCEADAS Cristina Boeres Árvore Binária - altura máxima Seja a árvore A formada com as seguintes inserções! 1, 2, 3, 4, 5, 6 e 7 1 2 3 4! Pior caso: O(n) 5 6

Leia mais

ALGORITMO DE EUCLIDES

ALGORITMO DE EUCLIDES Sumário ALGORITMO DE EUCLIDES Luciana Santos da Silva Martino lulismartino.wordpress.com lulismartino@gmail.com PROFMAT - Colégio Pedro II 25 de agosto de 2017 Sumário 1 Máximo Divisor Comum 2 Algoritmo

Leia mais

este termo já se tornou obsoleto, pois depois das derivadas em φ, qualquer termo que sobrar com J multiplicado vai ser nulo (quando J=0)

este termo já se tornou obsoleto, pois depois das derivadas em φ, qualquer termo que sobrar com J multiplicado vai ser nulo (quando J=0) este termo já se tornou obsoleto, pois depois das derivadas em φ, qualquer termo que sobrar com J multiplicado vai ser nulo (quando J=0) vetor vetor Teoria Quântica de Campos II 39 estamos generalizando

Leia mais

Tabela Hash. Disciplina de Algoritmos e Estrutura de Dados III. Prof. Marcos Antonio Schreiner 15/05/2015

Tabela Hash. Disciplina de Algoritmos e Estrutura de Dados III. Prof. Marcos Antonio Schreiner 15/05/2015 Tabela Hash Disciplina de Algoritmos e Estrutura de Dados III Prof. Marcos Antonio Schreiner 15/05/2015 Introdução Seja um conjunto de chaves armazenadas em um vetor e em uma árvore AVL. Qual a complexidade

Leia mais

Análise de Algoritmos

Análise de Algoritmos Algoritmos p. 1/25 Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof. José Coelho de Pina. Algoritmos p. 2/25 Ordenação em tempo linear CLRS cap 8 Algoritmos

Leia mais

Sistemas de Amortização

Sistemas de Amortização Matemática Financeira Sistemas de Amortização Prof. Me. Marcelo Stefaniak Aveline Matemática Financeira Séries de Pagamentos Prof. Me. Marcelo Stefaniak Aveline Séries de Pagamentos Este conteúdo pode

Leia mais

Estruturas de Dados para Conjuntos Disjuntos. Estruturas de dados para conjuntos disjuntos

Estruturas de Dados para Conjuntos Disjuntos. Estruturas de dados para conjuntos disjuntos Estruturas de Dados para Conjuntos Disjuntos Fernando Lobo Algoritmos e Estrutura de Dados II 1 / 32 Estruturas de dados para conjuntos disjuntos Também conhecido por UNION-FIND. Objectivo: Manter uma

Leia mais

Sequencias e Series. Exemplo 1: Seja tal que. Veja que os dez primeiros termos estão dados por: ,,,,...,, ou seja que temos a

Sequencias e Series. Exemplo 1: Seja tal que. Veja que os dez primeiros termos estão dados por: ,,,,...,, ou seja que temos a Sequencias e Series Autor: Dr. Cristian Novoa MAF- PUC- Go cristiancalculoii@gmail.com Este texto tem como objetivo principal, introduzir alguns conceitos de Sequencias e Series,para os cursos de Engenharia,

Leia mais

Introdução aos Algoritmos e Estruturas de Dados 2011/2012

Introdução aos Algoritmos e Estruturas de Dados 2011/2012 INSTITUTO SUPERIOR TÉCNICO Introdução aos Algoritmos e Estruturas de Dados 2011/2012 Enunciado do 1 o Projecto Data de entrega: 21 de Outubro de 2011 às 23h59 1 Introdução A Zona Euro (ZE) é actualmente

Leia mais