Module 1 - Asymptotic Notations and Correctness of Algorithms
What is an algorithm?
A set of specific instructions intended to solve a problem
What is the ranking of order of growths for algorithms?
Fastest to slowest: - n - n log(n) - n^2 - n^3 - k^n - n!
What is needed to prove an algorithm correct?
Proof that the invariant holds true in the following: 1. Base case (beginning) 2. Inductive Case (middle/during execution) 3. Termination
What is a loop invariant?
Some condition that holds true for each iteration of a loop
What is Big Theta notation
The average case scenario or average function of an algorithms time or space complexity
What is Big Omega Notation?
The best case scenario or lower bound of an algorithms time or space complexity
What do you compare when evaluating two algorithms?
The growth rates of both algorithms
What is Big O notation?
The worst-case scenario or the upper bound of an algorithms time or space complexity