Você está na página 1de 30

MC3305

Algoritmos e Estruturas de Dados II

Aula 01 Apresentao

Prof. Jess P. Mena-Chalco


jesus.mena@ufabc.edu.br
2Q-2014

Apresentao
Professor:
Jess P. Mena-Chalco (CMCC)
Formao:
- Engenheiro da Computao.
- Mestre e Doutor em Cincia da Computao.
Instituto de Matemtica e Estatstica da USP.
Sala 517-A, torre 2, 5 Andar.
reas de pesquisa:
- Reconhecimento de padres, Bibliometria, e Cientometria.
2

Apresentao
Johann Bernoulli (16671748)

rvore de genealogia:
81.768 vrtices (matemticos)
88.955 arestas (relacionamentos)
3

Apresentao

Fuga/Migrao de pessoas
Aplicao de estruturas de dados
eficientes para a anlise de dados.
4

Sobre a disciplina

Requisito: Algoritmo e Estrutura de Dados I


Ementa:
Breve introduo linguagem C (ou C++).
Noes bsicas de anlise de complexidade de tempo de
algoritmos.
Representao, organizao e gerenciamento de dados em
memria primria: listas, filas, pilhas, rvores.
Algoritmos de busca: busca sequencial, busca binria.
Algoritmos de ordenao: insero, seleo, bolha,
mergesort, heapsort, quicksort.
rvores de busca, rvores balanceadas de busca.
6

Algoritmo e Estrutura de Dados II

Representao, organizao e gerenciamento de dados em


memria primria: tcnicas de pesquisa; noes de
complexidade: hashing; union-find; rvores AVL, rvores
rubro-negras.
Representao, organizao e gerenciamento de dados em
memria secundria: tcnicas de pesquisa; noes de
complexidade: rvores B;
Algoritmos de ordenao mergesort e keysort; arquivos
indexados.
Algoritmos de codificao e decodificao de dados;
Compresso de dados; noes de complexidade: algoritmo
de Huffman.
7

Bibliografia
CORMEN, T. H.; LEISERSON, C. E.; RIVEST, R. L. e STEIN, C.
Introduction to Algorithms, 3a edio, MIT Press, 2009.
FOLK, M.; ZOELLICK, B.; RICCARDI, G. File Structures, An
Object-Oriented Approach Using C++, 3a edio, AddisonWesley, 1998.
ZIVIANI, N. Projeto de Algoritmos: com implementaes em
Pascal e C, 2a edio, Cengage Learning, 2009
FOLK, M.; ZOELLICK B. File Structures, 2a edio, AddisonWesley, 1992.
SEDGEWICK, R. Algorithms in C, Parts 1-4: Fundamentals, Data
Structures, Sorting, Searching, 3a edio. Addison-Wesley, 1997.
SZWARCFITER, J. L.; MARKEZON, L. Estruturas de Dados e
seus Algoritmos, 2a edio, LTC, 1994.
8

Algoritmo e Estrutura de Dados II


TIDIA-AE: MC3305-AED2-noturno
TPI: 2 - 2 - 4
muito importante considerar as ~4 horas de estudo fora da
aula.
Fall in love with mathematics
Be self-motivated
Never back down
Become a master
Be a bookworm

(pratique matemtica)
(trabalhe com pares)
(seja persistente)
(ensine aos colegas)
(seja leitor vido)

Leia as seguintes sugestes:


http://www.wikihow.com/Learn-a-Programming-Language
9

Alguns livros importantes para a carreira

10

Sobre a linguagem de programao


Atualmente existem vrias linguagens que so consideradas
para este tipo de disciplinas...
(Python, C, C++, Java, Haskell, Ruby)
Tambm vrios paradigmas de programao (e.g. procedural,
orientado a objetos,) podem ser consideradas...
Todo programador competente deve saber/entender a
linguagem C/C++.
Tradicionalmente utilizada a linguagem C/C++.
Nessa disciplina usaremos C/C++.
11

Sobre o IDE (Integrated development environment)


Ambiente de desenvolvimento integrado:
Kdevelp
Code Blocks
Netbeens C++
Eclipse CDT
Dev C++
C-Free
Vi
Emacs

http://designzum.com/2014/02/26/best-compilers-and-ides-for-cc-programmers/
12

Sobre os exerccios
Para a avalio de exerccios-problema usaremos a
plataforma UVa Online Judge
(University of Valladolid,Spain)
um repositrio de mais de 3500 problemas de
computao.
O aluno pode enviar solues (em cdigo fonte) para a
plataforma e este determinar se a soluo correta
ou no.
Semanalmente sero solicitados, de 2 a 4, exerccios desse
repositrio de problemas, para que o aluno pratique e
obrigatoriamente submeta plataforma.
Os problemas estaro ligados aos tpicos estudados em aulas.
13

Sobre os exerccios
Para comprovar a soluo de cada exerccio-problema, o
aluno dever submeter areao do Tidia:
O cdigo fonte enviado ao UVa, e
O email de confirmao da soluo.
Veja a seguir um exemplo:

O cdigo fonte servir para detectar plgio entre diferentes solues.


14

Sobre os exerccios
Faa seu registro na seguinte pgina:
http://uva.onlinejudge.org/
Utilize seu nome real (como registrado na Prograd)
Veja uma introduo plataforma em:
http://www.mathblog.dk/uva-online-judge/
Quais problemas desenvolver?
http://uhunt.onlinejudge.org/

15

Sobre os exerccios

16

Sobre a avaliao

17

Sobre a avaliao
Prova 01: 24 de julho
30%
Prova 02: 28 de agosto
30%
Exerccios-problema
25%
Monografia + apresentao de tpicos especiais 15%
Atribuio de conceitos:
A: nota 8,5
B: 7 nota < 8,5
C: 5,5 nota < 7
D: 5,0 nota < 5,5
F: nota < 5,0
Substitutiva (apenas de prova): 11 de setembro
18

Material e atividades
Os slides das aulas, enunciados de atividades, e outras
comunicaes da disciplina sero publicadas no Tidia-ae.
[MC3305-AED2-noturno]

Pgina web com outras informaes:


http://professor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2014/

Email: jesus.mena@ufabc.edu.br
Dvidas no ltimo dia de entrega (<=24hrs) sobre as
atividades/exerccios no sero respondidas.
19

Primeiro problema

20

Primeiro problema (11567)

Para S=7 teremos como resposta 5.

21

Primeiro problema (uma possvel soluo)

22

Primeiro problema (uma possvel soluo)

scanf: scan formatted

23

scanf

24

scanf

25

Primeiro problema (uma possvel soluo)

26

Primeiro problema
Compilando o programa:

27

Primeiro problema
Compilando o programa:

Testando o programa:

Teste em batch:

28

Exerccios-Problema (EPs) para esta semana


11567 - Moliu Number Generator (ok)
10055 - Hashmat the Brave Warrior
458 - The Decoder
100 - The 3n + 1 problem
10327 - Flip Sort
Data: 30/Junho (segunda-feira) at s 23h50.
Arquivos:
Para cada exerccio-problema dever submeter:
O cdigo fonte: nome do arquivo
O comprovante de aceitao (Uva)

RA_nroDoProblema.cpp
RA_nroDoProblema.pdf
Exemplo: 10123456_11567.cpp
10123456_11567.pdf
29

Pginas importantes
Quick access, info and search:
http://acm.uva.es/local/online_judge/search_uva.html
Faa seu registro na seguinte pgina:
http://uva.onlinejudge.org/
Utilize seu nome real (como registrado na Prograd)
Veja uma introduo plataforma em:
http://www.mathblog.dk/uva-online-judge/

30