Escolar Documentos
Profissional Documentos
Cultura Documentos
Cincia da Computao
Anlise e Complexidade de Algoritmos Prof. Esp. Fernando Salles Claro
fernando.claro@unianhanguera.edu.br
Aula
02
Medidas
de
complexidade,
anlise
assint8ca
de
limites
de
complexidades.
Agenda
Onde
estamos?
Sobre
a
aula
anterior!
O
que
complexidade?
Complexidade
de
Espao
Complexidade
de
Tempo
Critrios
de
complexidade
Anlise:
melhor
caso,
caso
mdio,
pior
caso
Anlise
assintFca
Classes
de
comportamento
assintFco
Bibliograa
Prxima
Aula
Passo
a
palavra
11/03/11
Onde estamos?
Plano
Ensino
Aprendizagem
(PEA)
Semana
1
2
3
4
5
6
7
8
9
Temas
Apresentao
da
disciplina.
Introduo
a
Anlise
e
Complexidade
de
Algoritmos
Medidas
de
complexidade
Medidas
de
complexidade
Medidas
de
complexidade
Anlise
de
desempenho
de
alguns
algoritmos
clssicos
Anlise
de
desempenho
de
alguns
algoritmos
clssicos
Anlise
de
desempenho
de
alguns
algoritmos
clssicos
Reviso
e
Exerccios
Avaliao
do
1
Bimestre
11/03/11
O que complexidade?
Porque
estudar
a
complexidade
do
algoritmo?
O
fato
do
algoritmo
teoricamente
resolver
o
problema
no
signica
que
ele
seja
aceitvel
na
prFca.
Obter
informaes
para
realizar
uma
comparao
entre
os
algoritmos
e
escolher
o
mais
eciente.
O que complexidade?
Melhorar
se
possvel,
seu
desempenho
e
escolher
entre
os
algoritmos
disponveis,
o
melhor.
Critrios:
quanFdade
de
trabalho
requerido,
quanFdade
de
tempo
requerido,
simplicidade,
exaFdo
de
resposta
e
oFmalidade.
11/03/11
Complexidade de espao
A
memria
usada
por
um
programa,
depende
da
sua
implementao.
Mas
todo
programa
exige
uma
rea
para
guardar
suas
variveis,
constantes,
instrues
e
dados.
Pode
haver
grande
variao
na
representao
das
informaes,
requerendo
mais
ou
menos
memria.
Exemplo:
Representar
os
dados
em
um
matriz
(representao
natural)
e
em
um
grafo
(VrFces
e
arestas).
Complexidade de tempo
Principal
foco
de
estudo
da
disciplina.
ObjeFvo
uma
anlise
matemFca
das
diculdades
da
resoluo
do
problema
computacionalmente.
Muitas
vezes
essa
anlise,
antecipa
o
clculo
da
complexidade
para
a
fase
do
projeto
do
algoritmo,
inuenciando
o
resultado.
11/03/11
Critrios de complexidade
Como
medir?
Atravs
da
escolha
de
uma
operao
fundamental.
Conta-se
ento
o
n
de
vezes
dessa
operao
no
algoritmo.
A
operao
escolhida
como
fundamental
deve
ser
aquela
que
expressa
a
quanFdade
de
trabalho
do
algoritmo,
dispensando
outras
medidas.
Pode
tambm,
ser
necessria
mais
de
uma
operao
fundamental,
com
pesos
diferentes
Critrios de complexidade
Exemplo
1:
Encontrar
maior
valor
de
um
conjunto
de
nmeros.
int Max (vetor A, int n) { int i, Temp; Temp = A[0]; for (i=1;i<n;i++) { if (Temp < A[i]) Temp = A[i]; } return Temp; }
11/03/11
Critrios de complexidade
Exemplo
2:
Busca
Seqencial
int Busca(int chave, vetor A, int n) { int i, posicao; i = 0; posicao = -1; while (i<n) && (posicao = -1){ if (A[i] = chave) posicao = i else i++; } return posicao; }
Exerccio
Escreva
uma
funo
C
que
retorne
quantas
vezes
o
nmero
9
se
repete
no
seguinte
vetor
:
V
=
[0
2
9
5
4
2
7
9
9
9
3
5
1
0
9].
Depois
idenFque
qual
a
operao
fundamental
e
sua
funo
f(n).
11/03/11
Exerccio
Soluo
(do
professor)
int Conta9(vetor A; int n) { int vezes, i; vezes=0; for(i=0; i<n; i++) { if (A[i] == 9) vezes++; } return vezes; }
11/03/11
11/03/11
11/03/11
10
11/03/11
11
11/03/11
Anlise assinttica
O
custo
para
obter
uma
soluo
para
um
dado
problema
aumenta
com
o
tamanho
n
do
problema.
O
n
de
comparaes
para
encontrar
o
maior
elemento
de
um
conjunto
n
de
inteiros,
ou
para
ordenar
os
elementos
de
um
conjunto
com
n
elementos,
aumenta
com
n.
O
parmetro
n
fornece
uma
medida
da
diculdade
para
se
resolver
o
problema,
no
senFdo
de
que
o
tempo
necessrio
para
resolver
o
problema
cresce
quando
n
cresce.
12
11/03/11
Anlise assinttica
Para
valores
sucientemente
pequenos
de
n,
qualquer
algoritmo
custa
pouco
para
ser
executado,
mesmo
os
algoritmos
inecientes.
Logo,
anlise
de
algoritmos
realizada
para
valores
grandes
de
n,
isto
,
estuda-se
o
comportamento
assintFco
das
funes
de
custo.
O
comportamento
assintFco
de
f(n)
representa
o
limite
do
comportamento
do
custo
quando
n
cresce.
13
11/03/11
14
11/03/11
15
11/03/11
16
11/03/11
17
11/03/11
18
11/03/11
19
11/03/11
n n2 n3 n5 2n 3n
20
11/03/11
21
11/03/11
Bibliografia
ZIVIANI,
Nivio.
Projeto
de
Algoritmos.
p.
3-19
22
11/03/11
Prxima Aula
Exerccios
de
reviso
das
aulas
1
e
2
23