The Algorithms Design Manual

The Algorithm Design Manual

Podemos nos deparar em alguns momentos com situações onde o algoritmo com a solução correta, não é implementavel na prática, por motivos do poder computacional necessário ou outro, nesses casos recorremos a heuristica. Heuristica irá nos ajudar nesses cenários com atalhos que nos levam a soluções que respondam o problema satisfatoriamente.

Heuristica é utilizado em problema de otimização complexos onde algoritmos exatos demoram muito tempo para serem calculados

Podemos expressar algoritmos nas seguintes formas:

  1. Linguagem natural (Português)
  2. Pseudocode
  3. Linaguage de Programação

Analise de algoritmos

Case complexity

The Big OH Notation

Estrutura de Dados

Mudanças na estrutura de dados não mudam um algoritmo correto mas influencia na sua performance.

Tres abstrações de dados fundamentais:

  1. containers
  2. dicionarios
  3. filas de prioridade (priority queue)

Contiguous vs Linked Data Structures

Arrays

Linked List

pagina 69 —-