时间复杂度分析 选择运算符来计算一行代码的运行次数
如果您的while循环是:
3 while i < n log n + 1
4 for j = 1 to n n log n
5 sum = sum + j n log n
6 i = 2i log n
然后,是的,您在计算复杂度方面是正确的。代码的复杂性确实是O(nlogn)
。
编辑: 虽然我很好奇你在这里想要做什么。您正在计算第1个n
元素的总和logn
。
因此,返回值将类似于 n*(n+1)/2 * logn
解决方法
分析此伪代码的时间复杂度。在右边,我估算每行的运行次数。我不确定是否要使用log n,n log n或仅将n用作while循环。.请帮助
times
1 sum = 0 1
2 i = 1 1
3 while i ≤ n log n + 1
4 for j = 1 to n n log n
5 sum = sum + j n log n
6 i = 2i log n
7 return sum 1
结果为:2 n log + 2log n + 4
从而:O(n log n)
这样对吗 ?