时间复杂度分析选择运算符来计算一行代码的运行次数

问题描述

如果您的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)

这样对吗 ?

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...