ABSTRACT
Asymptotic notation provides a mathematical framework for describing the limiting behavior of functions. In computer science, we use it to classify the efficiency of algorithms by comparing their growth rates to standard functions (like or ).
1. The Necessity of Efficiency: Turing’s Lesson
The history of computer science highlights that a correct algorithm is not always a “good” one. During WWII, Alan Turing’s team needed to crack the German Enigma code.
- The Problem: The Enigma machine changed its cipher every 24 hours. A machine that found the key in 48 hours was effectively useless.
- The Breakthrough: By using “pruning” logic (omitting solutions based on known phrases), Turing reduced the time complexity of the decryption, allowing the machine to finish within the required window.
- The Lesson: Algorithms must be quantified by how they scale as input size () grows.
2. Core Asymptotic Notations
To discuss efficiency scientifically, we use specific notations to define upper, lower, and tight bounds.
| Notation | Intuition | Limit Definition limn→∞g(n)f(n) |
|---|---|---|
| Big-Theta () | Same growth rate | (where ) |
| Big-O () | Same or better (Upper bound) | (where ) |
| Big-Omega () | Same or worse (Lower bound) | or |
| Small-o () | Strictly better (Strict upper bound) |
3. Mathematical Definitions
Big-O (): The Upper Bound
means grows no faster than . This is the most common notation used in industry to describe worst-case scenarios.
- Formal Definition: There exist positive constants and such that for all .
- Key Property: .

Big-Theta (): The Tight Bound
means and scale at the same rate.
- Formal Definition: There exist positive constants , and such that for all .

Big-Omega (): The Lower Bound
means grows at least as fast as .
- Limit Test: If or , then .

Graph Comparison

4. Hierarchy of Growth Rates
When analyzing algorithms, we simplify functions by dropping constants and lower-order terms. The following standard functions are ordered from slowest to fastest growth:
| Term | Complexity | Verdict |
|---|---|---|
| Constant | Excellent | |
| Logarithmic | Excellent | |
| Linear | Good | |
| Polynomial | Fair | |
| Exponential | Poor | |
| Factorial | Unusable for large |

5. Time vs. Space Complexity
- Time Complexity: Quantifies execution time by counting elementary operations.
- Space Complexity: Measures the amount of working storage (memory) required for an input of size .
- Example: A matrix storing travel data between cities requires storage, simplified to space.
6. Practical Application

Example: Polynomial Bound
Prove .
- Choose and .
- For , we know .
- Thus, .
- Since for all , the claim is proven.