Análise Amortizada. Exemplo: Tabelas dinâmicas. Resulta da análise de uma sequência de operações numa estrutura de dados.
|
|
- Daniel Álvares Aldeia
- 7 Há anos
- Visualizações:
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 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 maisAná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 maisAULA 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 maisAná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 maisAná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 maisHashing. 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 maisDivisã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 maisEstruturas 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 maisINF70 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 maisGBC053 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 maisTabelas 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 mais10 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 maisLista 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 maisAlgoritmos 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 maisComparaçã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 maisO 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 maisMC102 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 maisIntroduçã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 maisAná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 maisProgramaçã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 maisUniversidade 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 maisSequê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 maisAndré 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 maisHeaps 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 maisACH2024. 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 maisAná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 maisCapí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 maisHASHING 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 maisAlgoritmos 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 mais4. 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 maisESTRUTURAS 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 maisEstruturas 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 maisGrafos. 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 maisOrdenaçã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 maisCIC 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 maisAV3 - 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 maisAula 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 maisAlgoritmo. 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 maisHashing. 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 maisPonteiro 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 maisTabelas 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 maisAná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 mais5 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 maisFilas 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 maisAlgoritmos 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 maisSME0801- 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 maisHASHING 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 maisPonteiros 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 maisPonteiros 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 maisFilas 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 maisMC-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 maisPROJETO 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 maisFilas 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 maisTAD 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 maisComplexidade 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 maisTabela 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 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 maisAná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 maisAlgoritmos 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 maisVamos 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 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 maisDerivadas 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 maisFernando 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 maisEstruturas 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 maisDiagrama 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 maisAlgoritmos 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 maisHashing 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 maisLuí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 maisSequê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 maisElementos 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 maisEstruturas 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 maisEnumerabilidade. 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 maisDivisã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 maisQuick 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 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 maisCurso 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 mais3. 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 maisAULA 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 maisMatemá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 maisi 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 maisQuanto 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 maisOrdenaçã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 maisLinguagem 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 maisLista 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 maisTabelas 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 maisC 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
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 maisVamos 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 maisFundamentos 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 maisCampo 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 maisESTRUTURA 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 maisALGORITMO 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 maiseste 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 maisTabela 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 maisAná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 maisSistemas 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 maisEstruturas 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 maisSequencias 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 maisIntroduçã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