Big O Notation is a mathematical notation that is used to describe how algorithm's execution time grows as input size increases. It describes **worst-case scenario** and it's useful for comparing algorithms' performance at scale. > If I put a certain amount of data in the particular algorithm, how much slower will it get? Big O Notation is used to answer this question. | Notation | Complexity | | ------------ | ----------- | | O(1) | Constant | | O(n) | Linear | | O(log n) | Logarithmic | | O(n * log n) | Log linear | | O(n^2) | Quadratic | ### See also 1. [[Why do we care about growth trend rather than actual time in Big O Notation?]] 2. [[What is time complexity for Python built-in functions?]] 3. [[Constant Time Complexity - O(1)]] 4. [[Linear Time Complexity - O(n)]] 5. [[Logarithmic Time Complexity - O(log n)]] 6. [[Quadratic Time Complexity - O(n2)]] 7. [[Log Linear Time Complexity - O(n * log n)]]