Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.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
Algorithm 时间复杂性_Algorithm_Time Complexity - Fatal编程技术网

Algorithm 时间复杂性

Algorithm 时间复杂性,algorithm,time-complexity,Algorithm,Time Complexity,如果我们的算法是orderN^2*logN,如果输入大小为64,则需要1毫秒;在输入大小为2048的情况下运行此算法是否需要2^10*(11/6)毫秒?我在这里使用的是正比例,这就是为什么它对我来说似乎有缺陷。最简单的解决方法可能是将2048除以64,将得到的数字插入复杂度方程,结果是输入大小2048的毫秒数。你试过用2048大小的输入集运行算法吗?花了多长时间?这些数字太小了,低阶项仍然有显著影响的可能性是不可忽略的。实际上,这是针对纸上的时间复杂性问题,我没有尝试过编写一个阶数为N^2*lo

如果我们的算法是order
N^2*logN
,如果输入大小为64,则需要1毫秒;在输入大小为2048的情况下运行此算法是否需要2^10*(11/6)毫秒?我在这里使用的是正比例,这就是为什么它对我来说似乎有缺陷。

最简单的解决方法可能是将2048除以64,将得到的数字插入复杂度方程,结果是输入大小2048的毫秒数。

你试过用2048大小的输入集运行算法吗?花了多长时间?这些数字太小了,低阶项仍然有显著影响的可能性是不可忽略的。实际上,这是针对纸上的时间复杂性问题,我没有尝试过编写一个阶数为N^2*logN的算法并尝试输入。不一定。时间复杂度通常用渐近表示法表示,当输入变得非常大时,它只告诉您极限行为。它并不是要告诉你任何关于“小”输入或固定(不变大小)或低阶成本的事情。它听起来很合理,所以答案是如果f(x)=x^2*logx,那么f(2^11/2^6)=f(2^5),对吗?时间复杂度通常不是这样表示/工作的
O(N^2*log(N))
可能意味着,例如,算法对大小为
N
的输入采取
15n^2*log(27n)+573n+1000000000
步骤。如果忽略较低顺序的项?那么这条路对吗?因为我写了一些简单的程序,其中有3个嵌套循环,它们什么都不做,并且遵守了Robert解释的规则。例如,您的简单程序可能正好是
N^3
,因此其缩放方式与
N^3
完全相同。你会说它是
O(N^3)
。然而,一个需要
10*N^3+100*N^2+1000*N+10000
步数的程序也被称为
O(N^3)
,但它的伸缩性并不完全像
N^3
。对于大的
N
,它将按
N^3
的顺序进行缩放,并将缩放到
N^3
所附的常数倍数
10
,这在大O符号中也被忽略。对于较小的
N
,其他术语更为重要,并且缩放不会明显。