IT용어위키



Asymptotic Notation

Asymptotic Notation is a mathematical tool used to describe the limiting behavior of an algorithm's complexity as the input size approaches infinity. It provides a way to analyze and compare algorithm efficiency by focusing on the growth rate of time or space complexity.

Key Asymptotic Notations

Asymptotic notation expresses how an algorithm's performance scales with input size. The most common types are:

Big O Notation (O)

  • Definition: Represents an upper bound on an algorithm’s growth rate (worst-case complexity).
  • Example: If an algorithm has O(n²) complexity, its runtime does not exceed a constant multiple of n² for large n.
  • Usage: Ensures an algorithm will not perform worse than the given bound.

Big Omega Notation (Ω)

  • Definition: Represents a lower bound on an algorithm’s growth rate (best-case complexity).
  • Example: If an algorithm has Ω(n log n) complexity, its runtime is at least proportional to n log n.
  • Usage: Guarantees that an algorithm will take at least the given time.

Big Theta Notation (Θ)

  • Definition: Represents a tight bound (both upper and lower) on an algorithm’s growth rate.
  • Example: If an algorithm has Θ(n log n) complexity, its runtime grows at exactly that rate.
  • Usage: Defines an algorithm’s precise asymptotic behavior.

Little o Notation (o)

  • Definition: Represents an upper bound that is not tight (strictly smaller growth rate).
  • Example: If an algorithm has o(n²) complexity, its runtime grows slower than n² but not necessarily at a fixed rate.

Little Omega Notation (ω)

  • Definition: Represents a lower bound that is not tight (strictly greater growth rate).
  • Example: If an algorithm has ω(n log n) complexity, its runtime grows faster than n log n.

Comparison of Notations

Notation Description Example Meaning
O(f(n)) Upper bound (worst-case) O(n²) means runtime is at most proportional to n².
Ω(f(n)) Lower bound (best-case) Ω(n log n) means runtime is at least proportional to n log n.
Θ(f(n)) Tight bound Θ(n log n) means runtime is both at most and at least proportional to n log n.
o(f(n)) Strictly smaller upper bound o(n²) means runtime grows slower than n².
ω(f(n)) Strictly greater lower bound ω(n log n) means runtime grows faster than n log n.

Examples

  • Linear Search
    • Complexity: O(n) (worst case), Ω(1) (best case).
  • Binary Search
    • Complexity: O(log n), Ω(1).
  • Merge Sort
    • Complexity: O(n log n), Θ(n log n).

Applications

Asymptotic notation is widely used in:

  • Algorithm Analysis: Comparing different algorithms based on efficiency.
  • Data Structures: Evaluating operations such as searching, insertion, and deletion.
  • Computational Complexity Theory: Classifying problems into P, NP, NP-complete, etc.

See Also


  출처: IT위키(IT위키에서 최신 문서 보기)
  * 본 페이지는 공대위키에서 미러링된 페이지입니다. 일부 오류나 표현의 누락이 있을 수 있습니다. 원본 문서는 공대위키에서 확인하세요!