alggmoritmos e estruturas de dados - comp.ita.bralonso/ensino/ces11/ces11-cap01.pdf · ces-11...
TRANSCRIPT
![Page 1: Alggmoritmos e Estruturas de Dados - comp.ita.bralonso/ensino/CES11/ces11-cap01.pdf · CES-11 Alggmoritmos e Estruturas de Dados Carlos Alberto Alonso Sanches Juliana de Melo Bezerra](https://reader033.vdocuments.net/reader033/viewer/2022052918/5b0511657f8b9a6c0b8eb340/html5/thumbnails/1.jpg)
CES-11
Algoritmos e g mEstruturas de Dados
Carlos Alberto Alonso SanchesJuliana de Melo Bezerra
![Page 2: Alggmoritmos e Estruturas de Dados - comp.ita.bralonso/ensino/CES11/ces11-cap01.pdf · CES-11 Alggmoritmos e Estruturas de Dados Carlos Alberto Alonso Sanches Juliana de Melo Bezerra](https://reader033.vdocuments.net/reader033/viewer/2022052918/5b0511657f8b9a6c0b8eb340/html5/thumbnails/2.jpg)
Objetivos geraisObjetivos geraisj gj gCompreensão da necessidade de uma boa estruturação das informações processadas no computador
Capacidade de escolher a estrutura de dados mais adequada para uma determinada aplicaçãoq p p ç
Capacidade de programar métodos que criam e manipulam essas estruturasmanipulam essas estruturas
Famoso livro de Niklaus Wirth: Algorithms + Data Structures = Programs“Estar alfabetizado” versus “saber redigir”Estar alfabetizado versus saber redigir
![Page 3: Alggmoritmos e Estruturas de Dados - comp.ita.bralonso/ensino/CES11/ces11-cap01.pdf · CES-11 Alggmoritmos e Estruturas de Dados Carlos Alberto Alonso Sanches Juliana de Melo Bezerra](https://reader033.vdocuments.net/reader033/viewer/2022052918/5b0511657f8b9a6c0b8eb340/html5/thumbnails/3.jpg)
AlgoritmoAlgoritmog mg mInformalmente, um algoritmo é qualquer g q qprocedimento computacional bem definido que recebe um conjunto de valores como entradaje produz outro conjunto de valores como saídaAlgoritmo corretoAlgoritmo correto
Para cada instância de entrada, termina e produz m s íd d duma saída adequada
Algoritmo incorretogQuando para com uma resposta indesejadaQuando não para (ou seja permanece em loop)Quando não para (ou seja, permanece em loop)
![Page 4: Alggmoritmos e Estruturas de Dados - comp.ita.bralonso/ensino/CES11/ces11-cap01.pdf · CES-11 Alggmoritmos e Estruturas de Dados Carlos Alberto Alonso Sanches Juliana de Melo Bezerra](https://reader033.vdocuments.net/reader033/viewer/2022052918/5b0511657f8b9a6c0b8eb340/html5/thumbnails/4.jpg)
Exemplos de algoritmosExemplos de algoritmosmp g mmp g m
Projeto Genoma HumanoProjeto Genoma HumanoO DNA humano possui cerca de 100 mil genes e 3 bilhões de pares de bases químicasp q
Necessidade de armazenar esses dados e analisá-losInserção, eliminação e atualização dos dadosOrdenação classificação e pesquisa de informaçõesOrdenação, classificação e pesquisa de informaçõesCorrelação entre os dadosCálculos científicos envolvendo grandes matrizes
ltidi i imultidimensionaisInternet
E l it i i l Emprega algoritmos para gerenciar e manipular um enorme volume de dados
Localização de rotas por onde os dados trafegamLoca zação rotas por on os a os traf gamMecanismos de pesquisa de páginas
![Page 5: Alggmoritmos e Estruturas de Dados - comp.ita.bralonso/ensino/CES11/ces11-cap01.pdf · CES-11 Alggmoritmos e Estruturas de Dados Carlos Alberto Alonso Sanches Juliana de Melo Bezerra](https://reader033.vdocuments.net/reader033/viewer/2022052918/5b0511657f8b9a6c0b8eb340/html5/thumbnails/5.jpg)
Exemplos de algoritmosExemplos de algoritmosmp g mmp g m
Comércio eletrônicoComércio eletrônicoNecessidade de manter informações privativas (número de cartões senhas etc )(número de cartões, senhas, etc.)
Criptografia de chave pública e assinaturas digitaisCompactação e descompactação
Indústria e comércioAlocação adequada de recursos escassosAlocação adequada de recursos escassos
Onde localizar os poços de petróleo para maximizar o lucro?
l ú l Onde investir em publicidade? Público? Região?Como designar tripulações de voo de um modo menos dispendioso?dispendioso?Qual melhor investimento: ações, opções, títulos públicos?
![Page 6: Alggmoritmos e Estruturas de Dados - comp.ita.bralonso/ensino/CES11/ces11-cap01.pdf · CES-11 Alggmoritmos e Estruturas de Dados Carlos Alberto Alonso Sanches Juliana de Melo Bezerra](https://reader033.vdocuments.net/reader033/viewer/2022052918/5b0511657f8b9a6c0b8eb340/html5/thumbnails/6.jpg)
Desenvolvimento de um algoritmoDesenvolvimento de um algoritmom m g mm m g m
í Convém conhecer os Características dos algoritmosConsidere um problema prático
Convém conhecer os algoritmos existentes para então adaptá-los às suas necessidadesConsidere um problema prático
Existem muitas resoluções candidatas, mas provavelmente não serão exatamente aquilo de que
às suas necessidades
p q qvocê precisa...
Qual o melhor algoritmo? Basta que forneça a resposta correta?Basta que forneça a resposta correta?Também é importante a sua eficiência
Tempo de computaçãoTempo de computaçãoMemória utilizada
![Page 7: Alggmoritmos e Estruturas de Dados - comp.ita.bralonso/ensino/CES11/ces11-cap01.pdf · CES-11 Alggmoritmos e Estruturas de Dados Carlos Alberto Alonso Sanches Juliana de Melo Bezerra](https://reader033.vdocuments.net/reader033/viewer/2022052918/5b0511657f8b9a6c0b8eb340/html5/thumbnails/7.jpg)
Estruturas de dadosEstruturas de dadosO consumo de tempo e de memória torna-se pextremamente crítico quando o universo de informações é muito grande...A eficiente utilização dos recursos computacionais e a redução do tempo de
d d d d i fresposta dependem de dois fatores:Boa estruturação das informaçõesBons algoritmos que manipulem essas estruturas
Principais modelos para visualizar, interpretar d de armazenar dados:
Listas linearesÁÁrvoresGrafos
![Page 8: Alggmoritmos e Estruturas de Dados - comp.ita.bralonso/ensino/CES11/ces11-cap01.pdf · CES-11 Alggmoritmos e Estruturas de Dados Carlos Alberto Alonso Sanches Juliana de Melo Bezerra](https://reader033.vdocuments.net/reader033/viewer/2022052918/5b0511657f8b9a6c0b8eb340/html5/thumbnails/8.jpg)
Listas linearesListas lineares
Seus elementos formam uma sequência linear:q
Cada elemento possui um antecessor e um psucessor (exceto o primeiro e o último)Tabelas, em geral, se enquadram neste modelo:Tabelas, em geral, se enquadram neste modelo
• Listas telefônicas• Folhas de pagamento• Livros de uma biblioteca• Tabelas de um banco de Tabelas de um banco de
dados relacional
![Page 9: Alggmoritmos e Estruturas de Dados - comp.ita.bralonso/ensino/CES11/ces11-cap01.pdf · CES-11 Alggmoritmos e Estruturas de Dados Carlos Alberto Alonso Sanches Juliana de Melo Bezerra](https://reader033.vdocuments.net/reader033/viewer/2022052918/5b0511657f8b9a6c0b8eb340/html5/thumbnails/9.jpg)
ÁrvoresÁrvores
Há uma hierarquia entre os elementos:q
Cada elemento:Cada elemento:Tem um único pai (exceto a raiz)Pode ter vários filhosPode ter vários filhosNão pode ser pai de nenhum ancestral
![Page 10: Alggmoritmos e Estruturas de Dados - comp.ita.bralonso/ensino/CES11/ces11-cap01.pdf · CES-11 Alggmoritmos e Estruturas de Dados Carlos Alberto Alonso Sanches Juliana de Melo Bezerra](https://reader033.vdocuments.net/reader033/viewer/2022052918/5b0511657f8b9a6c0b8eb340/html5/thumbnails/10.jpg)
Exemplos de árvoresExemplos de árvoresmpmp
Organograma de empresasg g pOrganização de livros e cursosJogos eliminatórios de um campeonatoJogos eliminatórios de um campeonatoExpressões aritméticas
![Page 11: Alggmoritmos e Estruturas de Dados - comp.ita.bralonso/ensino/CES11/ces11-cap01.pdf · CES-11 Alggmoritmos e Estruturas de Dados Carlos Alberto Alonso Sanches Juliana de Melo Bezerra](https://reader033.vdocuments.net/reader033/viewer/2022052918/5b0511657f8b9a6c0b8eb340/html5/thumbnails/11.jpg)
GrafosGrafosff
Há uma interligação geral entre os elementos, g ç gsem formar sequências ou hierarquias:
E lExemplos:Tarefas de um projetoSistema rodoviárioSistema rodoviárioRedes de interconexãoFornecimento de produtos entre fábricasm p fMáquinas de estados finitosetc.
![Page 12: Alggmoritmos e Estruturas de Dados - comp.ita.bralonso/ensino/CES11/ces11-cap01.pdf · CES-11 Alggmoritmos e Estruturas de Dados Carlos Alberto Alonso Sanches Juliana de Melo Bezerra](https://reader033.vdocuments.net/reader033/viewer/2022052918/5b0511657f8b9a6c0b8eb340/html5/thumbnails/12.jpg)
Importância da disciplinaImportância da disciplinamp pmp pNa Ciência da Computação:
Processo de compilaçãoGerenciamento de programas e de memóriaConstrução de bancos de dadosConstrução de bancos de dadosetc.
Mesmo sem ser um especialista na área um Mesmo sem ser um especialista na área, um engenheiro nos dias de hoje deve ser capaz de elaborar algoritmos não triviais.Alguns exemplos de problemas em grafos:
Caminhos mais curtosValidação de grafos acíclicosComponentes fortemente conexosPontos de articulaçãoPontos de articulaçãoÁrvore geradora de custo mínimo
![Page 13: Alggmoritmos e Estruturas de Dados - comp.ita.bralonso/ensino/CES11/ces11-cap01.pdf · CES-11 Alggmoritmos e Estruturas de Dados Carlos Alberto Alonso Sanches Juliana de Melo Bezerra](https://reader033.vdocuments.net/reader033/viewer/2022052918/5b0511657f8b9a6c0b8eb340/html5/thumbnails/13.jpg)
Caminhos mais curtosCaminhos mais curtos
Distâncias a Distâncias a partir de um dado vérticedado vérticeAplicações:
Transporte terrestre ou aéreoaéreoRobóticaP j t s d VLSIProjetos de VLSI
![Page 14: Alggmoritmos e Estruturas de Dados - comp.ita.bralonso/ensino/CES11/ces11-cap01.pdf · CES-11 Alggmoritmos e Estruturas de Dados Carlos Alberto Alonso Sanches Juliana de Melo Bezerra](https://reader033.vdocuments.net/reader033/viewer/2022052918/5b0511657f8b9a6c0b8eb340/html5/thumbnails/14.jpg)
Validação de grafos acíclicosValidação de grafos acíclicos
Grafo acíclico Grafo cíclico
Aplicações:Gerenciamento de projetos (redes PERT CPM: Gerenciamento de projetos (redes PERT-CPM: Program Evaluation and Review Technique, Critical Path Method)ath Method)Simulação de circuitos combinacionais
![Page 15: Alggmoritmos e Estruturas de Dados - comp.ita.bralonso/ensino/CES11/ces11-cap01.pdf · CES-11 Alggmoritmos e Estruturas de Dados Carlos Alberto Alonso Sanches Juliana de Melo Bezerra](https://reader033.vdocuments.net/reader033/viewer/2022052918/5b0511657f8b9a6c0b8eb340/html5/thumbnails/15.jpg)
Componentes fortemente conexosComponentes fortemente conexos
Subconjuntos maximais de vértices onde há
61
caminhos de qualquer vértice a todos os demais.
1,2,3,4 5,6,72 5
61
3
8,9 104 7
Aplicações:
8 9 10
Aplicações:Privacidade em sistemas de comunicaçãoClasses de equivalência em circuitos digitaisClasses de equivalência em circuitos digitaisRedução do tamanho de determinados problemas
![Page 16: Alggmoritmos e Estruturas de Dados - comp.ita.bralonso/ensino/CES11/ces11-cap01.pdf · CES-11 Alggmoritmos e Estruturas de Dados Carlos Alberto Alonso Sanches Juliana de Melo Bezerra](https://reader033.vdocuments.net/reader033/viewer/2022052918/5b0511657f8b9a6c0b8eb340/html5/thumbnails/16.jpg)
Pontos de articulaçãoPontos de articulação
Um vértice é ponto de articulação se ao ser Um vértice é ponto de articulação se, ao ser removido, desconecta o grafo.
a
b c b c
a
b
d e f g d e f g
b
d e f g
Aplicações:
a é ponto de articulação c é ponto de articulação
Aplicações:Sistemas de transmissão de energia elétricaSistemas de distribuição hidráulicaSistemas de distribuição hidráulicaRedes de interconexão em geral
![Page 17: Alggmoritmos e Estruturas de Dados - comp.ita.bralonso/ensino/CES11/ces11-cap01.pdf · CES-11 Alggmoritmos e Estruturas de Dados Carlos Alberto Alonso Sanches Juliana de Melo Bezerra](https://reader033.vdocuments.net/reader033/viewer/2022052918/5b0511657f8b9a6c0b8eb340/html5/thumbnails/17.jpg)
Árvore geradora de custo mínimo Árvore geradora de custo mínimo
Às vezes, é necessário encontrar um subgrafo gerador (todos os vértices e um subconjunto das arestas) que seja árvore e que tenha custo mínimo.
16 5
1
16
1
12 4
3
15 5
6 43 2
2 4
3
5 5
6 4
2 4
3
15
43 2
5 6
6
64
5 6
6 4
Á
5 6
4
Á
Aplicações:
Grafo não orientado Árvore de custo 26 Árvore de custo 15 (mínimo)
Aplicações:Redes de interconexão em geral
![Page 18: Alggmoritmos e Estruturas de Dados - comp.ita.bralonso/ensino/CES11/ces11-cap01.pdf · CES-11 Alggmoritmos e Estruturas de Dados Carlos Alberto Alonso Sanches Juliana de Melo Bezerra](https://reader033.vdocuments.net/reader033/viewer/2022052918/5b0511657f8b9a6c0b8eb340/html5/thumbnails/18.jpg)
Plano do cursoPlano do curso
Primeiro Bimestre:Breve revisãoNoções de complexidade de algoritmosLi t liListas linearesPilhas, filas e dequesÁrvoresÁrvoresÁrvores binárias
Segundo Bimestre:Segundo Bimestre:Algoritmos de ordenaçãoParadigma da Divisão-e-ConquistaParadigma da Divisão e ConquistaGrafos
RepresentaçõesS l õ d l bl lá iSoluções de alguns problemas clássicos
Noções de Programação Orientada a Objetos
![Page 19: Alggmoritmos e Estruturas de Dados - comp.ita.bralonso/ensino/CES11/ces11-cap01.pdf · CES-11 Alggmoritmos e Estruturas de Dados Carlos Alberto Alonso Sanches Juliana de Melo Bezerra](https://reader033.vdocuments.net/reader033/viewer/2022052918/5b0511657f8b9a6c0b8eb340/html5/thumbnails/19.jpg)
Avaliações individuaisAvaliações individuais
Em cada bimestre:Em cada bimestre2 provas3 l b r tóri s3 laboratórios
Pesos:Provas: 50%Média dos laboratórios: 50%Média dos laboratórios: 50%
![Page 20: Alggmoritmos e Estruturas de Dados - comp.ita.bralonso/ensino/CES11/ces11-cap01.pdf · CES-11 Alggmoritmos e Estruturas de Dados Carlos Alberto Alonso Sanches Juliana de Melo Bezerra](https://reader033.vdocuments.net/reader033/viewer/2022052918/5b0511657f8b9a6c0b8eb340/html5/thumbnails/20.jpg)
Premissas éticas nos laboratóriosPremissas éticas nos laboratóriosmmÉ permitido:
C lt t i l didáti ( lid til ódi ) d Consultar material didático (slides, apostilas, códigos) de outros professores do ITA ou disponível na internet (neste último caso, se for código, sem fornecê-lo a outros colegas)Pensar na solução junto com um colega, antes de programaremTrocar ideias com outro colega, mas sem olhar o código que ele escreveuescreveuAjudar um colega a encontrar erros de codificação, desde que já tenha terminado o próprio laboratório
Não é permitido:Utilizar código pronto encontrado na internet Olhar ou copiar soluções de outro aluno (da mesma turma ou de anteriores)Fazer o exercício (mesmo parcialmente) de um colega com Fazer o exercício (mesmo parcialmente) de um colega com dificuldadesEscrever o código junto com outro colega
![Page 21: Alggmoritmos e Estruturas de Dados - comp.ita.bralonso/ensino/CES11/ces11-cap01.pdf · CES-11 Alggmoritmos e Estruturas de Dados Carlos Alberto Alonso Sanches Juliana de Melo Bezerra](https://reader033.vdocuments.net/reader033/viewer/2022052918/5b0511657f8b9a6c0b8eb340/html5/thumbnails/21.jpg)
BibliografiaBibliografiag fg fW. Celes, R. Cerqueira, J.L. RangelIntrodução a Estrutura de Dados
P. FeofiloffAl it Li CAlgoritmos em Linguagem C
A. DrozdekEstrutura de Dados e Algoritmos em C++g
![Page 22: Alggmoritmos e Estruturas de Dados - comp.ita.bralonso/ensino/CES11/ces11-cap01.pdf · CES-11 Alggmoritmos e Estruturas de Dados Carlos Alberto Alonso Sanches Juliana de Melo Bezerra](https://reader033.vdocuments.net/reader033/viewer/2022052918/5b0511657f8b9a6c0b8eb340/html5/thumbnails/22.jpg)
Bibliografia complementarBibliografia complementarg f mp mg f mp m
T H Cormen C E Leiserson R L Rivest T.H. Cormen, C.E. Leiserson, R.L. Rivest Introduction to Algorithms
A. V. Aho, J. E. Hopcroft, J. D. UllmanData Structures and Algorithms
R S d i k
g
R. SedgewickAlgorithms [in C, C++, Java]
![Page 23: Alggmoritmos e Estruturas de Dados - comp.ita.bralonso/ensino/CES11/ces11-cap01.pdf · CES-11 Alggmoritmos e Estruturas de Dados Carlos Alberto Alonso Sanches Juliana de Melo Bezerra](https://reader033.vdocuments.net/reader033/viewer/2022052918/5b0511657f8b9a6c0b8eb340/html5/thumbnails/23.jpg)
Bibliografia complementarBibliografia complementarg f mp mg f mp m
A M Tanenbaum Y Langsam M J Augenstein A.M. Tanenbaum, Y. Langsam, M.J. Augenstein Estruturas de Dados usando C
M T Goodrich R TamassiaM.T. Goodrich, R. TamassiaProjeto de Algoritmos
B.R. PreissEstruturas de Dados e Algoritmos