Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Time complexity 这个代码片段的时间复杂度是多少?_Time Complexity - Fatal编程技术网

Time complexity 这个代码片段的时间复杂度是多少?

Time complexity 这个代码片段的时间复杂度是多少?,time-complexity,Time Complexity,我在程序中使用此算法: for( i=0 ; i<N ; i++ ) for( j=i+1 ; j<N+1 ; j++ ) for( k=0 ; k<i ; k++ ) doWork(); 对吧??这三个循环加起来怎么样?感谢@Tim Meyer纠正我的错误: 简单方程给出了(N=0,1,2,3,4,5,6,7,8…)以下系列:0,0,1,4,10,20,35,56,84,可通过以下公式进行解析: u(n) = (n - 1)n(n +

我在程序中使用此算法:

for( i=0 ; i<N ; i++ )

  for( j=i+1 ; j<N+1 ; j++ )

     for( k=0 ; k<i ; k++ )

          doWork();

对吧??这三个循环加起来怎么样?

感谢@Tim Meyer纠正我的错误:

简单方程给出了(N=0,1,2,3,4,5,6,7,8…)以下系列:0,0,1,4,10,20,35,56,84,可通过以下公式进行解析:

u(n) = (n - 1)n(n + 1)/6 

因此它将具有O((N-1)N(N+1)/6)时间复杂度,可以简化为O(N^3)形式上,您可以执行以下操作:


在一个简单的分析中,你会省去任何常数乘数和求和,这确实会给你留下O(N³)。在这种特殊情况下,摊销运行时分析可能会很有趣,这要困难得多因此,请确保您确实需要准确地了解它。它不是100%正确的,因为for N=0和N=1
doWork()
将不会被调用。那么对于N=2,3,4,5,。。该系列将是1,4,10,20,。。所以它应该是
(N-1)*(N)*(N+1)/6
,也就是
(N^3-N)/6
。通常你把它简化为O(N^3),因为这是其中的主要因素equation@Tim迈耶-谢谢你的更正,我已经更新了答案
u(n) = (n - 1)n(n + 1)/6