算法优化疑问:循环结构的时间复杂度计算及优化判定
算法时间复杂度相关问题解答
时间复杂度判定
针对你给出的外层循环包含两个非嵌套循环的代码:
for K = 0 to N for I = 0 to N end for J = 0 to N end end
它的时间复杂度确实是O(N*(N+N)),不过化简后等价于O(N²)——因为N*(N+N)=2N²,大O符号会忽略常数系数,所以最终可以简化记为O(N²)。
是否属于算法优化
当然算优化!你之前用的是O(N³)的三重嵌套循环,改成这种写法后,时间复杂度从O(N³)降到了O(N²),这是量级上的本质提升,属于明显的算法优化。当N很大时,两者的运行效率差距会非常显著:比如N=1000时,O(N²)的运算量是百万级,而O(N³)是十亿级,后者的运行时间会是前者的上千倍。
内容的提问来源于stack exchange,提问作者Sahil Nayak
相关产品推荐
相关产品推荐

