Algorithm Complexity
Big-O Notation
- Big-O refers as $O(n)$.
- It use to mean either the time complexity of an algorithm (called time complexity) or how much ram it can consume during the process (called as auxiliary space).
- Definition: Suppose $f(x)$ and $g(x)$ are two functions defined on some subset of the real numbers. We write $f(x) = O(g(x))$ for $x \to \infty$ iff $\exist$ constants $N$ and $C$ such that $|f(x)| \leq C |g(x)|~\forall~x > N$.
- The above definition suggests $f(x)$ does not grow faster than $g(x)$.
- Idea: To calculate $O(n)$, identify the worst case for the targeted algorithm and formulate a function of its performance given an $n$ amount of elements.
- Example: If we have an algorithm that search for the number 7 in an array, then the worst case scenario would be if 7 is at the end of the array. This means our time complexity is linear that is of order $n$ $O(n)$, and suggest us that the algorithm need to run through the entire $n$-element array before finding the number 7.
Table with algorithms and complexity
Permalink at https://www.physicslog.com/cs-notes/algorithm-complexity
Published on Jul 13, 2021
Last revised on Jul 13, 2021