Time complexity
Contents
- Constant
- Logarithmic
- Linear
- Sub- and super-linear
- Polynomial
- Example: nub
- Improvement
- Exponential
The only way to really know how fast code runs is to run it. But we can also achieve a great deal through reasoning. Especially for “collections” libraries,A few examples of collections libraries: containers, unordered-containers, vector it is common to describe the efficiency of an operation by giving a rough idea of the relationship between the number of elements in a collection and the time required to compute the operation.
The terminology for this comes from the field of asymptotic analysis, which contains a lot to learn. But for everyday programming, these are the top five words you should be familiar with:
| Mathematically | Informally | |
|---|---|---|
| Constant | 1 | Fast |
| Logarithmic | log n | Pretty fast |
| Linear | n | Noticeable |
| Polynomial | n2 | Unpleasant |
| Exponential | 2n | Unusable |

