When evaluating the complexity of an algorithm, you’ll frequently encounter a few common patterns. Understanding how to approximate, calculate, and represent them using Big-O notation is a crucial step in analyzing algorithm efficiency.
Let’s break down the most common complexity patterns and how to handle them.
1. Arithmetic Series: 
This is a classic arithmetic series.
The exact sum is:
![]()
But in Big-O notation, we drop constants and lower-order terms:
![]()
How to Remember It (Visual Intuition)
Suppose you had this sum:
![]()
You can visualize it as a triangle. This sum is roughly:
![]()
So in Big-O, it becomes:
![]()
Even if you forget the formula, you can remember it grows quadratically because the number of additions grows like a triangle.
2. Geometric Series: 
This is a geometric series with ratio 2.
The exact sum is:
![]()
We approximate this as:
![]()
How to Visualize
Let’s take
:
![]()
Now imagine each number as circles:
= 1 circle
= 2 circles- …
= 16 circles
If you stack all these over the last row (
), it gives an area roughly double of the last row:
![]()
Which, in Big-O, simplifies to:
![]()
3. Logarithmic Base Conversion
If you’re dealing with logarithms of different bases, remember this formula:
![]()
Here:
Since
is constant, and Big-O ignores constants:
![]()
![]()
So, in complexity analysis, all logarithms are treated equally.
4. Factorial: 
The factorial function grows very fast. It’s the product of all positive integers up to
:
![]()
Special case:
![]()
Example:
![]()
Growth Order
- Factorial growth:

- This is faster than exponential:

5. Permutations
The total number of permutations of
unique elements is:
![]()
Example: For
(elements A, B, C), the permutations are:
- ABC
- ACB
- BAC
- BCA
- CAB
- CBA
Total permutations: ![]()
6. Summary of Typical Complexities
| Expression | Complexity |
| Permutations |
7. Useful Formulas to Remember
Arithmetic sum:
![]()
Geometric sum:
![]()
Logarithmic base change:
![]()
Factorial:
![]()
Permutations:
![]()
8. Conclusion
When evaluating time complexities of algorithms:
- Use approximations when exact values are hard to remember.
- Recognize standard patterns like arithmetic, geometric, and factorial growth.
- Apply Big-O notation to express the order of growth.
- Ignore constants and lower-order terms, focusing only on the leading term.
These foundational patterns appear repeatedly in sorting, searching, recursion, and combinatorics. Mastering them will greatly improve your skill in analyzing algorithms.
