【发布时间】:2014-02-24 03:15:53
【问题描述】:
您好,我需要帮助找出该算法的复杂性。 您能否逐行回答复杂性,而不仅仅是最终结果?
算法如下:
int algorithm(int x)
{
int y = 1;
while (y <= x-1)
{
int z = y*2;
while (z <= x)
{
int w = 1;
while (w <= z)
{
w++;
}
z++;
}
y++;
}
}
任何帮助将不胜感激!
谢谢
【问题讨论】:
-
听起来有点像“你能帮我做作业吗”。你对复杂性了解多少?你觉得这段代码有什么困难?
-
并不是我只是想自己学习一些复杂性。到目前为止,我知道如何找到第一个循环的复杂性,但我不知道如何找到第一个循环内循环的复杂性。
-
好的;第一个(最外层)循环的复杂性是多少?如果您忽略了两个外部循环,那么第三个(最里面的)循环的复杂度是多少?如果忽略最内层循环的复杂度,那么中间循环的复杂度是多少?所以,你现在有了 3 个循环的结果——复合有多复杂?
标签: c algorithm complexity-theory time-complexity code-complexity