在以下代码段中,我在计算时间复杂度时有疑问。
情况1:-对于(i = n; i> = 1; i = i / 2)printf(“%d”,i);
情况2:-对于(i = 1; i <n; i = i * 2)printf(“%d”,i)
我能否说出上述代码,将需要O(N / 2)或O(log N)的时间复杂度来对输入进行运算?
提前致谢。
它需要O(log2(n)),仔细考虑一下.i = 1,然后打印结果为1,然后2,4,8,16直到2 ^ x> n,然后在其中进行数学运算,x> log2( n),因此时间复杂度为O(log2(n))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句