Na nossa sétima aula de métodos computacionais discutimos vários problemas clássicos usando o método de força bruta (usando a definição do problema). Obviamente, nas próximas aulas iremos aprender estratégias que produzam algoritmos menos custosos. Esses são os slides usados em sala.
Abaixo temos os exemplos apresentados em sala de aula:
Algoritmos de ordenação com complexidade quadrática
Cálculo de máximo e mínimo de uma sequência
Busca linear em uma lista
Cálculo de determinantes usando cofatores
Produto de matrizes em Python
Par mais próximo em python
Substring matching
Fecho convexo
Referências Adicionais para essa aula:
Introduction to the Design and Analysis of Algorithms - Anany Levitin [Seções 3.1, 3.2 e 3.3]
Referências Complementares:
Computational Geometry: Algorithms and Applications - Mark de Berg and Otfried Cheong
Soluções de exercícios
Tetrominoes [Questão 2]
Josephus [Questão 7]
Josephus [Questão 8]
Interseções de segmentos [Questão 9 (a)]
Diagrama de Voronoi [Questão 9 (d)]
Locomoção de robôs [Questão 9 (f)]