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)