アルゴリズム分析は初めてです。私の理解を確認したいだけです:
例えば:
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) 定義が正しいかどうか知りたいです。