Para voltar à página raíz clique aqui.
Algoritmos e Estruturas de Dados 1
Turma A - 2s2019
Informações do Professor
-
- Nome: Mário César San Felice
-
- Sala: G.08 do Departamento de Computação
-
- Email: [ meu último nome ] (at) ufscar.br
Informações do Curso
- Comentários do Prof. Tim Roughgarden da Stanford University sobre:
Por que estudar algoritmos?
O que se ganha em um curso de algoritmos?
- Cronograma previsto
Tabela: PDF.
- Critérios de Avaliação e Plágio
Texto: PDF.
- Turma A
Local e horário das aulas: AT9 190 ter 14h-16h / AT9 190 sex 14h-16h.
Notas Prova 1: PDF.
Notas Prova 2: PDF.
Notas Sub: PDF.
Notas Trabalhos: PDF.
Notas Finais: PDF.
- Atendimentos
Local e horário: G.08 do DC ter 13h-14h.
Local e horário (Acompanhamento PET-BCC): LE04 do DC sex 13h-14h.
Trabalhos Práticos
- Primeiro Trabalho Prático
Instruções disponíveis na página da disciplina no run codes.
- Segundo Trabalho Prático
Instruções disponíveis na página da disciplina no run codes.
- Terceiro Trabalho Prático
Instruções disponíveis na página da disciplina no run codes.
- Quarto Trabalho Prático
Instruções disponíveis na página da disciplina no run codes.
- Quinto Trabalho Prático
Instruções disponíveis na página da disciplina no run codes.
Tópicos das Aulas
- Apresentação, análise de algoritmos intuitiva, laços aninhados e logaritmos
Notas de aula: PDF.
Bibliografia: Tópicos Leiaute, Documentação e Logaritmos do Projeto de Algoritmos (em C), Seção 1.1 do Estruturas de Dados e Técnicas de Programação.
- Recursão, fatorial e torres de Hanoi
Notas de aula: PDF.
Bibliografia: Seção 5.1 do Estruturas de Dados e Técnicas de Programação.
Material complementar: Slides das aulas do prof. José Coelho de Pina Junior Aula 01, Aula 03.
- Recursão, máximo, binomial, análise de desempenho
Notas de aula: PDF.
Bibliografia: Tópico Recursão e algoritmos recursivos do Projeto de Algoritmos (em C).
Material complementar: Slides das aulas do prof. José Coelho de Pina Junior Aula 02.
- Recursão, exponencial, análise de desempenho
Notas de aula: PDF.
- Recursão, Máximo Divisor Comum, Fibonacci
Notas de aula: PDF.
Bibliografia: Seção 5.1 do Estruturas de Dados e Técnicas de Programação.
Material complementar: Slides das aulas do prof. José Coelho de Pina Junior Aula 03, Aula 04, Aula 02.
- Crescimento de funções, busca sequencial e binária em vetores
Notas de aula: PDF.
Bibliografia: Tópico Busca em vetor ordenado do Projeto de Algoritmos (em C).
Material complementar: Slides das aulas do prof. José Coelho de Pina Junior Aula 17.
- Endereços, apontadores e estruturas
Notas de aula: PDF.
Bibliografia: Tópicos Endereços e ponteiros, Registros e structs e Entrada e saída do Projeto de Algoritmos (em C).
Material complementar: Slides das aulas do prof. José Coelho de Pina Junior Aula 05.
- Alocação dinâmica de memória
Notas de aula: PDF.
Bibliografia: Tópico Alocação dinâmica de memória do Projeto de Algoritmos (em C), Capítulo 2 do Estruturas de Dados e Técnicas de Programação.
Material complementar: Slides das aulas do prof. José Coelho de Pina Junior Aula 06.
- Lista em vetor, lista ligada
Notas de aula: PDF.
Bibliografia: Tópicos Vetores e Listas encadeadas do Projeto de Algoritmos (em C), Seção 3.1 do Estruturas de Dados e Técnicas de Programação.
Material complementar: Slides das aulas do prof. José Coelho de Pina Junior Aula 07, Aula 08.
- Listas ligadas com nó cabeça, circulares e duplamente ligadas
Notas de aula: PDF.
Bibliografia: Tópico Listas encadeadas do Projeto de Algoritmos (em C), Seções 3.2 e 3.3 do Estruturas de Dados e Técnicas de Programação.
Material complementar: Slides das aulas do prof. José Coelho de Pina Junior Aula 09.
- Inversão de uma lista, listas encadeadas em vetores
Notas de aula: PDF.
Material complementar: Slides das aulas do prof. José Coelho de Pina Junior Aula 10, Aula 07.
- Pilha implementada em vetor, aplicação com parênteses e colchetes, pilha de execução, relação de pilha com recursão
Notas de aula: PDF.
Bibliografia: Tópico Pilhas do Projeto de Algoritmos (em C), Seção 4.2 do Estruturas de Dados e Técnicas de Programação.
Material complementar: Slides da aula do prof. José Coelho de Pina Junior Aula 10.
- Pilhas, inversão de sequências, notação infixa para pósfixa, conversão de recursão para iteração
Notas de aula: PDF.
Bibliografia: Tópico Pilhas do Projeto de Algoritmos (em C), Seções 4.3 e 5.2 do Estruturas de Dados e Técnicas de Programação.
Material complementar: Slides da aula do prof. José Coelho de Pina Junior Aula 11.
- Pilhas em listas encadeadas (com e sem nó cabeça)
Notas de aula: PDF.
Bibliografia: Tópico Pilhas do Projeto de Algoritmos (em C), Seção 4.2 do Estruturas de Dados e Técnicas de Programação.
Material complementar: Slides da aula do prof. José Coelho de Pina Junior Aula 13.
- Bibliotecas e interfaces, pilhas, leiaute da memória
Notas de aula: PDF.
Bibliografia: Tópico Bibliotecas de funções do Projeto de Algoritmos (em C).
Material complementar: Slides da aula do prof. José Coelho de Pina Junior Aula 12, Aula 13.
- Fila implementada em vetor, cálculo de distâncias, interfaces
Notas de aula: PDF.
Bibliografia: Tópico Filas do Projeto de Algoritmos (em C), Seção 4.4 do Estruturas de Dados e Técnicas de Programação.
Material complementar: Slides da aula do prof. José Coelho de Pina Junior Aula 14.
- Filas em vetor circular e em listas ligadas, interfaces, listas de adjacência e ortogonais
Notas de aula: PDF.
Bibliografia: Tópico Filas do Projeto de Algoritmos (em C), Seção 4.4 do Estruturas de Dados e Técnicas de Programação.
Material complementar: Slides da aula do prof. José Coelho de Pina Junior Aula 15.
- Árvores binárias
Notas de aula: PDF.
Bibliografia: Tópico Árvores binárias do Projeto de Algoritmos (em C).
Material complementar: Slides das aulas do prof. José Coelho de Pina Junior Aula 25.
- Filas de prioridade: implementações básica e com heap
Notas de aula: PDF.
Bibliografia: Tópico Heapsort do Projeto de Algoritmos (em C), Seção 8.4 do Estruturas de Dados e Técnicas de Programação.
Material complementar: Slides das aulas do prof. José Coelho de Pina Junior Aula 21 e vídeo aulas do prof. Tim Roughgarden 12 3.
- Ordenação por inserção (insertionSort) e por transposição (bubbleSort)
Notas de aula: PDF.
Bibliografia: Tópicos Ordenação: algoritmos elementares do Projeto de Algoritmos (em C), Seções 13.1 e 13.2 do Estruturas de Dados e Técnicas de Programação.
Material complementar: Slides das aulas do prof. José Coelho de Pina Junior Aula 18.
- Embaralhamento de Knuth, melhoria no insertionSort, ordenação por seleção (selectionSort)
Notas de aula: PDF.
Bibliografia: Tópico Ordenação: algoritmos elementares do Projeto de Algoritmos (em C), Seção 13.3 do Estruturas de Dados e Técnicas de Programação.
Material complementar: Slides das aulas do prof. José Coelho de Pina Junior Aula 18.
- Ordenação por seleção eficiente (heapSort), construção de heap em tempo linear (heapify)
Notas de aula: PDF.
Bibliografia: Tópico Heapsort do Projeto de Algoritmos (em C), Seção 13.3 do Estruturas de Dados e Técnicas de Programação.
Material complementar: Slides das aulas do prof. José Coelho de Pina Junior Aula 21 e vídeo aulas do prof. Tim Roughgarden 12 2.
- Problemas da seleção e da contagem de inversões
Notas de aula: PDF.
Material complementar: Slides das aulas do prof. José Coelho de Pina Junior Aula 20.
- Tabelas de símbolos, implementação em vetores ordenados, árvores binárias de busca
Notas de aula: PDF.
Bibliografia: Seções 11.1 e 11.2 do Algorithms Illuminated, Part 2, Tópicos TSs ordenadas 1 e 2 das notas de aula do prof. Paulo Feofiloff, Tópico Árvores Binárias e Árvores binárias de busca do Projeto de Algoritmos (em C).
Material complementar: Slides das aulas do prof. José Coelho de Pina Junior Aula 25 e vídeo aulas do prof. Tim Roughgarden 13 1, 13 2, 13 3.
- Árvores binárias de busca (operações avançadas), tabelas de símbolos
Notas de aula: PDF.
Bibliografia: Seções 11.2 e 11.3 do Algorithms Illuminated, Part 2, Tópico Árvores binárias de busca do Projeto de Algoritmos (em C).
Material complementar: Slides das aulas do prof. José Coelho de Pina Junior Aula 25 e vídeo aulas do prof. Tim Roughgarden 13 1, 13 2, 13 3.
- Algoritmos de enumeração
Notas de aula: PDF.
Bibliografia: Tópico Algoritmos de enumeração do Projeto de Algoritmos (em C).
- Programação com retrocesso (backtracking)
Slides da aula: PDF.
Bibliografia: Seção 9.1 do Algorithms.
Material complementar: Slides das aulas do prof. José Coelho de Pina Junior Aula 24.
Listas de Exercícios
- Recursão: PDF.
- Vetores e busca: PDF.
- Listas encadeadas: PDF.
- Pilhas: PDF.
- Filas: PDF.
- Árvores binárias, heaps: PDF.
- Ordenação: PDF.
- Árvores binárias de busca: PDF.
Bibliografia e Materiais Recomendados
- Feofiloff, P.. Algoritmos em Linguagem C. Elsevier, 2009. Link para site Projeto de Algoritmos (em C) do mesmo autor com material do livro
- José Coelho de Pina Junior. MAC0122 Princípios de Desenvolvimento de Algoritmos. IME-USP, 2014. SLIDES
- R. Sedgewick. Algorithms in C, Parts 1-4: fundamentals, data structures, sorting, searching. 3rd. ed., Addison-Wesley, 1998.
- Lucchesi, C.L., Kowaltowski, T.. Estruturas de Dados e Técnicas de Programação. Versão 1.12, 2004. PDF
- Aaron M. Tenenbaum, Yedidyah Langsam, Moshe J. Augenstein. Estruturas de dados usando C. São Paulo: Pearson Makron Books, 2009.
- Ferrari, R., Ribeiro, M. X., Dias, R. L., Falvo, M. Estruturas de Dados com Jogos. Rio de Janeiro – Elsevier, 2014. LINK
- Nivio Ziviani. Projetos de algoritmos: com implementações em Pascal e C. 3a ed. rev. e ampl., São Paulo: Cengage Learning, 2012.
- E.S. Roberts. Programming Abstractions in C: a Second Course in Computer Science. Addison-Wesley, 1997.
- R.R. Ciferri. Programação de Computadores. Edufscar, 2009.
Last Update: 05/05/2021 16:49