作为家庭作业,我得到了以下 8 个代码片段来分析并给出运行时间的 Big-Oh 符号。谁能告诉我我是否走在正确的轨道上?
//Fragment 1
for(int i = 0; i < n; i++)
sum++;
我在考虑片段 1 的 O(N)
//Fragment 2
for(int i = 0; i < n; i+=2)
sum++;
片段 2 也是 O(N)
//Fragment 3
for(int i = 0; i < n; i++)
for( int j = 0; j < n; j++)
sum++;
片段 3 的 O(N^2)
//Fragment 4
for(int i = 0; i < n; i+=2)
sum++;
for(int j = 0; j < n; j++)
sum++;
片段 4 的 O(N)
//Fragment 5
for(int i = 0; i < n; i++)
for( int j = 0; j < n * n; j++)
sum++;
片段 5 的 O(N^2) 但 n * n 让我有点失望,所以我不太确定
//Fragment 6
for(int i = 0; i < n; i++)
for( int j = 0; j < i; j++)
sum++;
片段 6 也是 O(N^2)
//Fragment 7
for(int i = 0; i < n; i++)
for( int j = 0; j < n * n; j++)
for(int k = 0; k < j; k++)
sum++;
片段 7 的 O(N^3) 但再次 n * n 让我失望
//Fragment 8
for(int i = 1; i < n; i = i * 2)
sum++;
片段 8 的 O(N)