【发布时间】:2020-10-30 18:26:14
【问题描述】:
我刚开始我的数据结构课程,但在尝试计算以下代码中的时间复杂度时遇到了麻烦:
{
int j, y;
for(j = n; j >= 1; j--)
{
y = 1;
while (y < j)
y *= 2;
while (y > 2)
y = sqrt(y);
}
每次运行代码时,外部“for”循环都会运行 n 次,如果我没记错的话,第一个“while”循环会运行大约 log2(j)。
我不确定第二个“while”循环以及如何确定代码的整体时间复杂度。
我最初的想法是确定在“for”循环的每次迭代中哪个“while”循环会“花费”更多,只考虑两者中较高的一个并将其总结,但显然它并没有让我得到答案。
希望能提供任何帮助,尤其是在尝试计算诸如此类代码的复杂性的过程和总体方法方面。
【问题讨论】:
标签: data-structures time-complexity structure