这看起来像一个家庭作业问题,所以我会给你提示。
1)假设你只有内部循环。作为i和j的函数,你会经历多少次内循环?循环的每次迭代执行多少次操作?总共应该执行多少次操作?
2)现在假设你只有内部的两个循环。作为i和n的函数,你通过外循环多少次?每次穿过外环时,你会经历多少次内循环? (提示:这应该是不同的,取决于j是什么)总共应该执行多少操作?
3)现在您已准备好查看整个问题。你通过内部两个循环多少次(作为n的函数),每次迭代应该执行多少次操作?总共执行多少次操作? (这是你的答案)
好吧,你说这是不是一门功课的问题,实际上它比我想象的更难,所以我只是给你答案。
每个内循环在时间j-i中运行。 (i-i)+(i + 1-i)+ ... +(i + n-2i-i)= 1 + 2 + ... +(n-2i )=(n - 2i)(n - 2i + 1)/ 2,通过数学归纳。
在计算增长顺序时,1项与n相比非常小,因此外部循环运行在大约n^2/2 +(n-2)^ 2/2 +(n-4)^ 2/2 + ... + 1/2。这是通过归纳为n(n + 1)(2n + 1)/ 6的1^2 + 2^2 + ... + n^2的大约四分之一。因此,增长的顺序是欧米茄(n^3)。
它看起来像立方体给我。 –
但它有3个嵌套循环的事实并不意味着它实际上是立方体。为什么你认为它是? – atlanteh
尝试找到i的平均值作为n,j的函数作为i的函数,依此类推。 – isturdy