回答:
関数のすべてのペアが表記と比較できるわけではありません。機能を考慮fは(N )= Nと G (N )= { 1 た場合 、N 奇数で、nは2 あれば nは 偶数です。 さらに、g (n )のような関数は、アルゴリズムの実行時間として実際に発生します。明らかなブルートフォースアルゴリズムを検討して、指定された整数nが素数かどうかを判断します。
IsPrime(n):
for i ← 2 to (n-1)
if i·⌊n/i⌋ = n
return False
return True
このアルゴリズムは、必要場合演算をnは偶数であり、O (√nが複合の場合の演算。ただし、nが素数の場合のΘ(n)演算。したがって、正式には、このアルゴリズムは √を使用するアルゴリズムと比較できませんのための演算処理毎にN。
ほとんどの場合、アルゴリズムを分析するとき、比較的単純な関数fに対して形の漸近的な上限のみが必要です。たとえば、ほとんどの教科書は、O (n )算術演算で実行されるレポートを単純に(そして正しく)報告します。典型的な上限関数は、指数、多項式、および対数の積です(ただし、階乗や反復対数などのよりエキゾチックな獣も時々現れます)。このような2つの関数が同等であることを証明するのは難しくありません。IsPrime(n)
このMathOverflowの質問も参照してください。
Here's a pair monotonic functions that are not asymptotically comparable. This is relevant because most complexities arising in practice are in fact monotonic.
Here, is the gamma function. The second function is specially constructed to be very similar to the factorial, just "sampled" at slightly offset points in the gamma function. The functions cross each other periodically in such a way that neither is asymptotically bound by the other.
Let be the class of functions obtained from the identity function and constants using the following operations: addition, subtraction, multiplication, division, logarithm and exponential. For example, . Hardy proved that for every two functions which are positive and tend to infinity, one of the following is true: , , tends to a constant. See page 18 of his book "Orders of infinity".
The upshot is that any two "simple" functions occurring in the analysis of algorithm are comparable. Here "simple" means that there is no definition by cases (other than finitely many base cases), and no surprising functions appear, such as the inverse Ackermann function which sometimes figures in running times.