我的软件工程类介绍刚刚达到时间复杂度并学习如何分析某些算法。我很难看到他们如何得到解决方案,并希望有人能够解释它,希望有一些合理的证据?需要解释算法的时间复杂性解决方案
void foo(int N) {
int k = 1;
while (k < N * N) {
k = k * 2;
}
}
他们的解决方案是,这个功能的大澳是O(logN)的 [我明白这里提到日志基地2]
我试图通过思考来解决这个多少次会通过将随机值分配给N进行迭代,我无法找到模式,有什么帮助?
用二进制写出'k'和'N'的值。这应该都是有道理的,然后 –
使用数学程序/库来绘制循环次数与增加值N. – kaylum
@ user6918211:如果您认为以下答案之一足够,请将其标记为答案。 – Charles