Algorithm 时间复杂性分析。选择运算符以计算代码行的运行次数
分析了该伪码的时间复杂度。右边是我对每条线路运行次数的看法。我不确定是使用log n、n log n还是简单地使用n作为while循环..请帮助Algorithm 时间复杂性分析。选择运算符以计算代码行的运行次数,algorithm,analysis,pseudocode,Algorithm,Analysis,Pseudocode,分析了该伪码的时间复杂度。右边是我对每条线路运行次数的看法。我不确定是使用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
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对数+2对数n+4
因此:O(n logn)
这是正确的吗 如果您的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
3,而i
那么是的,你计算复杂度是正确的。代码的复杂性确实是O(nlogn)
编辑:虽然我很好奇你想在这里做什么。您正在计算第一个
n
元素logn
时间的总和
因此,返回值类似于
n*(n+1)/2*logn
我的任务是假设每行占用一个时间单位。这个练习是识别不同类型的语句(while/for)循环,给它们正确的“times”值。大的Oh符号足以解决这个练习(在添加值之后)。谢谢你的帮助PS:我在第四行加上了“小于或等于”的符号