这个问题是关于过去考试试卷的复习。我只想知道我是否在正确的轨道上。
1. int i=1;
2. while (i <= n) {
3. for (int j=1; j<10; j++)
4. sum++;
5. i++;
6. }
7. for( int j = 1; j <= n; j++ )
8. for( int k = 1; k <= n; k=k*2 )
9. sum++;
1.) 语句4执行了多少次?
A. O(n)
B. O(n^2)
C. O(log n)
D. O(n log n)
E. 都不是
我选择A。
2.) 语句9执行了多少次?
A. O(n)
B. O(n^2)
C. O(log n)
D. O(n log n)
E. 都不是
由于第8行(k=k*2),我选择C。
3.) 整个代码片段的运行时间是多少?
A. O(n)
B. O(n^2)
C. O(log n)
D. O(n log n)
由于O(n)+O(logn)=O(n),所以我选择A。