1

アルゴリズム分析は初めてです。私の理解を確認したいだけです:

例えば:

for (i=0, i<n; i++) {
}

1 つの割り当て、n の比較、および n のインクリメントがあることは明らかです。

n 関数は次のとおりです。 T(n) = t0 + t1*n + t2*n = t0 + (t1+t2)n = c0+c1*n

したがって、複雑さは次のとおりです。 O(n)

しかし、この他のケースでは、アドバイスが必要です。

for (i=0, i<=n; i++) {
}

T(n) = t0 + t1*(n+1) + t2*(n+1) ???

for (i=0, i<n-1; i++) {
}

T(n) = t0 + t1*(n-1) + t2*(n-1) ???

for (i=1, i<n; i++) {
}

T(n) = t0 + t1*(n-1) + t2*(n-1) ???

これらの fors ループはすべて O(n) であり、それだけが重要だと言う人もいると思います。しかし、それらの T(n) 定義が正しいかどうか知りたいです。

4

2 に答える 2