In Chapter 13, Sorting and Searching Algorithms, we introduced the concept of big O notation. What does it mean, exactly? It is used to describe the performance or complexity of an algorithm. Big O notation is used to classify algorithms according to how much time it will take for the algorithm to run, depending on space/memory requirements as the input size grows.
When analyzing algorithms, the following classes of function are most commonly encountered:
Notation | Name |
O(1) | Constant |
O(log(n)) | Logarithmic |
O((log(n))c) | Poly-logarithmic |
O(n) | Linear |
O(n2) | Quadratic |
O(nc) | Polynomial |
O(cn) | Exponential |