The computational complexity of an algorithm is the amount of resources (time and memory) required to run it.
Big-O notation gives an upper bound of the complexity in the worst case, helping to quantify performance as the input becomes arbitrarily large.
Where n is the size of the input; complexities ordered from smallest to largest:
|, b > 1||Exponential time|
Big-Omega notation gives a lower bound of the complexity in the best case.
Big-Theta notation gives a asymptotic bound (upper and lower bounds) of the complexity in the average case.