
1. Correct algorithm
-> Translates every input into the correct output.
2. Incorrect algorithm
-> If there is at least one input instance for which the algorithm does not produce the correct output.
- Intuitive approach: Estimate the running time of an algorithm
- Use execution times (run time): dependent on implementation and hardware.- Better Approach: count the number of operation
- # additions, #comparision, #assignment
Implementation : influenced by skill programmer
Hardware: changes the whole time and highly diverse
Big O notation → upper bound for number of operations

Ω notation → lower bound for #operations

⍬ notation → exact bound for #operations


Logarithmic function
→ #operations grows very slowly

Exponential function
→ #operations grows very fast

Example: polymerase chain reaction (PCR)
