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.