msinton / algorithm-design

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

algorithm-design

Designing algorithms requires

  1. Techniques - data structures / dynamic programming / depth-first / backtracking ...
  2. Resources - starting points / similar problems with their solutions

The algorithm Design Manual: Online material

Lecture slides

Recursive objects

  • Permutations
  • Subsets
  • Trees
  • Graphs
  • Points
  • Polygons
  • Strings

Model the problem correctly before trying to solve it!

Complexity

Worst case complexity is the most useful measure in practice than Best/Average (Average is often hard to define)

RAM model

Random Access Machine - used to model complexity of a solution. A simplified model of how computations are executed.

  • 1 step = simple ops (+, -, *, if, function call) Or memory access
  • n steps = Loops / subroutines

About