\begin{definition}[Definition:Algorithm/Analysis/Complexity]
An algorithm may be analysed in the context of its '''complexity'''.
This is typically via measures of run-times using big-O, or big-omega, or big-theta notation.
Complexity can be through 3 main types of analysis:
# Average-Case Analysis, using a distribution of cases to find an average case of the algorithm run-time for analysis
# Best-Case Analysis, using the best possible problem instance of the algorithm for analysis
# Worst-Case Analysis,using the worst possible problem instance of the algorithm for analysis
\end{definition}