この値は、アルゴリズムT
の検査結果です。
for (i=0; i < n; ++i) {
sum += i;
}
は、あなたが操作一度
i<n
、
++i
と
sum+=i
n回、および
i=0
を実行します。たとえば、単純なループを持っている場合。従って
f(n)==n
、
c==4
(値の正確さのために「1回」から「n回」を上げる)
x==1
(
n==0
の場合は、
i=0
と
i<n
を実行するので、式は機能しません)。これにより、O(n)のパフォーマンス(入力数に線形)が得られます。ネストされたループについて
:
for (i=0; i < n; ++i) {
for (j=0; j<n; ++j) {
sum += j;
}
}
計算が与え、f(n)==n^2
と、あなたはO(n^2)に類似しています。だから、そこc
とx
の正確な値を伝えるのないカットのn-乾燥方法はありませんが、ハードの部分はf
を考え出すされた時間の中で最も
- あまりにもそれの「最小」(O (n^2)アルゴリズムはO(n^3)アルゴリズムでもありますが、O(n^3)ではなくO(n^2)でそのアルゴリズムを特徴付けたいとします。 f
の順序は、n
が無限大に近づいたときの成長に基づいています。n
が後者よりも大きい場合でも、f(n)=n^3
はf(n)=2^n
よりも遅くなります。理論的にはx
とc
の実際の値はn
と無関係になることを
注意は、彼らがO(n)
表記自体には表示されません。その理由は、無限大に近づきます。これは、(比較的)小さな値の場合、n
の場合、命令の数がf(n)
よりはるかに大きくないことを意味しません(たとえば、forループ内に1000の命令があります)。
また、O(n)の表記は、あなたが現実の生活(平均ケースのコスト)やデータ構造(償却原価)の全体的な使用法で観察したものよりもはるかに高いかもしれない最悪パフォーマンスを与えます、 例えば。