Computation problem - binary relation from problem inputs to correct outputs.
Algorithm - a set of steps to be followed to perform a particular task.
Induction - making a generalization based on observed patterns.
Asymptotic Notation - mathematical notations used to describe the running time of an algorithm when the input tends towards a particular value or a limiting value .
The 3 main asymptotic notations:
- Upper bound (O) - Big-O notation (Worst case)
- Lower bound (Ω) - Omega notation (Best case)
- Tight bound (Θ) - Theta notation (Average case)
How to Solve Algorithms Problem
- Reduce to a problem that you already know - using a data structure or algorithm:
- Search Problem(Data Structure)
- Sort Algorithms
- Shortest Path Algorithms
- Design your own (recursive) algorithm.
- Brute Force
- Divide and Conquer
- Dynamic Programming