下列程序中sumFun()的算法时间复杂度为 ( ) 。int sumFun(int n) { int count = 0; for (int i = 1; i < n; i = i * 2) for (int j = i; j > 0; j = j - 1) count = count + i + j; return count; }
A: O(n)
B: O(nlogn)
C: O(n^2)
D: O(logn logn)
A: O(n)
B: O(nlogn)
C: O(n^2)
D: O(logn logn)
举一反三
- 给定以下算法:bool isDuplicate(float* iArrayA, int n){ for (int i = 0; i < n; i++){ for (int j = i + 1; j < n; j++) if (iArrayA[i] == iArrayA[j]) return true; } return false;}其时间复杂度是O( )。[/i] A: O(n^2) B: O(n) C: O(n^2 - n) D: O(1)
- 下列函数的时间复杂度是() int func(Int n){ int i=0,sum=0; while(sum<;n) sum+=++i; return i; } A: O(logn) B: O(n^1/2) C: O(n) D: O(nlogn)
- 下列函数的时间复杂度是() int func(Int n){ int i=0,sum=0; while(sum<n) sum+=++i; return i; } A: O(logn) B: O(n^1/2) C: O(n) D: O(nlogn)
- 请问以下方法的时间复杂度是多少?int n = 10;for (i = 1; i < n; ++i) { for (j = 1; j < n; j += n / 2) { for (k = 1; k < n; k = 2 * k) { x = x + 1; } }} A: O(n^3) B: O(n2logn) C: O(n(logn)*2) D: O(nlogn)
- 下列函数int func ( int n ){ int i = 0, sum = 0;while ( sum <; n ) sum += ++i;return i;}的时间复杂度是 A: O(nlogn) B: O(n) C: O(n1/2) D: O(logn)