Escolar Documentos
Profissional Documentos
Cultura Documentos
Aula 11
Faculdade de Computação
Universidade Federal de Mato Grosso do Sul
Análise de Algoritmos
1 Motivação
2 Análise agregada
3 Método da contagem
4 Método potencial
5 Exercícios
Introdução
Introdução
MultiPop(S, k)
01. enquanto não StackEmpty(S) e k > 0
02. Pop(S)
03. k = k−1
MultiPop(S, 4) MultiPop(S, 7)
Increment(A)
01. i=0
02. enquanto i < A.length e A[i] == 1
03. A[i] = 0
04. i = i+1
05. se i < A.length
06. A[i] = 1
I por outro lado, observe que nem todos os bits são trocados cada
vez que Increment é chamado
I A[0] é trocado cada vez que Increment é chamado
I A[1] é trocado a cada duas chamadas de Increment numa
sequência de n operações, totalizando bn/2c trocas
I similarmente, A[2] é modificado bn/4c vezes numa sequência de n
operações Increment
Introdução
Introdução
Introdução
I denotamos por ci e ĉi o custo real e o custo amortizado,
respectivamente, da i-ésima operação
I então, para todas sequências de n operações, vale que
n
X n
X
ĉi > ci (1)
i=1 i=1
Introdução
Introdução
Introdução
Introdução
Introdução
Φ(Di ) − Φ(Di−1 ) = (s + 1) − s = 1
Exercícios
Exercícios
Exercícios
17.3-1 Suponha que temos uma função potencial Φ tal que Φ(Di ) > Φ(D0 ) para
todo i, mas Φ(D0 ) , 0. Mostre que exisite uma função potencial Φ0 tal
que Φ0 (D0 ) = 0, Φ0 (Di ) > 0 para todo i > 1 e os custos amortizados
usando Φ0 saão os mesmos que os custos amortizados usando Φ.
17.3-2 Refaça o exercício 17.1-3 usando o método potencial.
17.3-4 Qual é o custo total de executar n das operações sobre uma pilha Push,
Pop e MultiPop, considerando que a pilha começa com s0 objetos e
termina com sn objetos?
Exercícios