for(i = 1; i < n; i *= 2) {
sum++;
for(j = 0; j < n; j += 2)
total++;
}
时间复杂度:
O(log(n))
O(log(n))
O(n)*O(log(n))
O(n)*O(log(n))
所以最后的答案是: O(log(n))
这样对吗?
复杂度将如下所示:
O(lgN)
O(1)
O(N/2) == O(N)
O(1)
所以复杂度是:
这是最终答案O(lgN)*(O(1)+ O(N)* O(1))
O(N)* O(1)= O(N)(1)
O(N)+ O(1)= O(N)(2),因为O(N)大于O(1)
假设(1)&(2)的最终答案将是O(lgN)* O(N)= O(N lgN)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句