如果您的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)
这样对吗 ?
评论列表