Professional Documents
Culture Documents
Algoritmos
g
m e
Estruturas de Dados
Objetivos
j
g
gerais
Compreenso da necessidade de uma boa
estruturao das informaes processadas no
computador
Capacidade de escolher a estrutura de dados
mais adequada
q
para
p
uma determinada aplicao
p
Estar
Estar alfabetizado
alfabetizado versus saber
saber redigir
redigir
Algoritmo
g
m
Informalmente, um algoritmo
g
qualquer
q q
procedimento computacional bem definido que
recebe um conjunto
j
de valores como entrada
e produz outro conjunto de valores como sada
Algoritmo correto
Para cada instncia de entrada, termina e produz
uma
m sada
s d adequada
d
d
Algoritmo
g
incorreto
Quando para com uma resposta indesejada
seja permanece em loop)
Quando no para (ou seja,
Exemplos
mp
de algoritmos
g
m
Projeto Genoma Humano
Internet
E
Emprega algoritmos
l
it
para gerenciar
i e manipular
i l um
enorme volume de dados
Loca
Localizao
zao de rotas por onde
on os dados
a os trafegam
traf gam
Mecanismos de pesquisa de pginas
Exemplos
mp
de algoritmos
g
m
Comrcio eletrnico
Necessidade de manter informaes privativas
(nmero de cartes,
cartes senhas,
senhas etc
etc.))
Criptografia de chave pblica e assinaturas digitais
Compactao e descompactao
Indstria e comrcio
Alocao adequada de recursos escassos
Onde localizar os poos de petrleo para maximizar o
lucro?
Onde investir em publicidade?
l
Pblico?
l
Regio?
Como designar tripulaes de voo de um modo menos
dispendioso?
Qual melhor investimento: aes, opes, ttulos pblicos?
Desenvolvimento
m
de um
m algoritmo
g
m
Caractersticas
dos algoritmos
Convm conhecer os
algoritmos existentes
para ento adapt-los
s suas necessidades
Estruturas de dados
O consumo de tempo
p e de memria torna-se
extremamente crtico quando o universo de
informaes muito grande...
A eficiente utilizao dos recursos
computacionais e a reduo do tempo de
resposta dependem
d
d
d
de d
dois
i f
fatores:
Boa estruturao das informaes
Bons algoritmos que manipulem essas estruturas
Grafos
Listas lineares
Seus elementos formam uma sequncia
q
linear:
Cada elemento p
possui um antecessor e um
sucessor (exceto o primeiro e o ltimo)
modelo:
Tabelas, em geral, se enquadram neste modelo
Listas telefnicas
Folhas de pagamento
Livros de uma biblioteca
Tabelas de um banco de
dados relacional
rvores
H uma hierarquia
q
entre os elementos:
Cada elemento:
Tem um nico pai (exceto a raiz)
Pode ter vrios filhos
No pode ser pai de nenhum ancestral
Exemplos
mp
de rvores
Organograma
g
g
de empresas
p
Organizao de livros e cursos
Jogos eliminatrios de um campeonato
Expresses aritmticas
Grafos
f
H uma interligao
g geral
g
entre os elementos,
sem formar sequncias ou hierarquias:
Exemplos:
E
l
Tarefas de um projeto
Sistema rodovirio
Redes de interconexo
Fornecimento
m
de produtos
p
entre fbricas
f
Mquinas de estados finitos
etc.
Importncia
mp
da disciplina
p
Na Cincia da Computao:
Processo de compilao
Gerenciamento de programas e de memria
Construo de bancos de dados
etc.
Grafo acclico
Grafo cclico
Aplicaes:
Gerenciamento de projetos (redes PERT-CPM:
PERT CPM:
Program Evaluation and Review Technique, Critical
ath Method)
Path
Simulao de circuitos combinacionais
6
3
4
8
1,2,3,4
7
9
8,9
5,6,7
10
10
Aplicaes:
Privacidade em sistemas de comunicao
Classes de equivalncia em circuitos digitais
Reduo do tamanho de determinados problemas
Pontos de articulao
Um vrtice ponto de articulao se,
se ao ser
removido, desconecta o grafo.
a
a
c
b
d
b
g
c
e
b
g
a ponto de articulao
c ponto de articulao
Aplicaes:
Sistemas de transmisso de energia eltrica
Sistemas de distribuio hidrulica
Redes de interconexo em geral
6
2
6
5
5
3
4
6
5
3
5
2
2
6
Grafo no orientado
6
5
1
4
5
3
rvore
de custo 26
Aplicaes:
Redes de interconexo em geral
4
5
2
6
rvore de custo 15
(mnimo)
Plano do curso
Primeiro Bimestre:
Breve reviso
Noes de complexidade de algoritmos
Li t lineares
Listas
li
Pilhas, filas e deques
rvores
rvores binrias
Segundo Bimestre:
Algoritmos de ordenao
Paradigma da Diviso
Diviso-e-Conquista
e Conquista
Grafos
Representaes
Solues
S l d
de alguns
l
problemas
bl
clssicos
l i
Avaliaes individuais
Em cada bimestre
bimestre:
2 provas
3 llaboratrios
b r tri s
Pesos:
Provas: 50%
Mdia dos laboratrios: 50%
Premissas
m
ticas nos laboratrios
permitido:
C
Consultar
lt material
t i l didtico
didti (slides
lid , apostilas,
til
cdigos)
di
)d
de
outros professores do ITA ou disponvel na internet (neste
ltimo caso, se for cdigo, sem fornec-lo a outros colegas)
Pensar na soluo junto com um colega, antes de programarem
Trocar ideias com outro colega, mas sem olhar o cdigo que ele
escreveu
Ajudar um colega a encontrar erros de codificao, desde que
j tenha terminado o prprio laboratrio
No permitido:
Utilizar cdigo pronto encontrado na internet
Olhar ou copiar solues de outro aluno (da mesma turma ou de
anteriores)
Fazer o exerccio (mesmo parcialmente) de um colega com
dificuldades
Escrever o cdigo junto com outro colega
Bibliografia
g f
W. Celes, R. Cerqueira, J.L. Rangel
P. Feofiloff
Al it
Algoritmos
em Li
Linguagem C
A. Drozdek
Bibliografia
g f complementar
mp m
T.H.
T H Cormen,
Cormen C.E.
C E Leiserson,
Leiserson R.L.
R L Rivest
Introduction to Algorithms
R.
R S
Sedgewick
d
i k
Bibliografia
g f complementar
mp m
A.M.
A M Tanenbaum
Tanenbaum, Y.
Y Langsam,
Langsam M.J.
M J Augenstein
M.T.
M T Goodrich,
Goodrich R.
R Tamassia
Projeto de Algoritmos
B.R. Preiss