Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.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
C# 简单时间复杂度计算_C#_Time Complexity - Fatal编程技术网

C# 简单时间复杂度计算

C# 简单时间复杂度计算,c#,time-complexity,C#,Time Complexity,我不熟悉时间的复杂性,现在开始解决问题, 我不确定我是否正确,请告诉我是否正确,如果不正确, 你是怎么计算的 我将最坏情况计算为6n+5,将一般情况计算为O(n),是否正确?取最常执行的指令。它是num=Random.Next(100)(与其他一些并列)。多久执行一次?N次;是O(N) 您还可以选择其他指令的频率。我们会看到这不重要。如果你这样做,你会得到O(6N+5),或者类似的东西(我会记下你的数字,因为这不重要) 如果你把东西加在一起,只保留最大的一个(当N很大时)。当N较大时,6N>5

我不熟悉时间的复杂性,现在开始解决问题, 我不确定我是否正确,请告诉我是否正确,如果不正确, 你是怎么计算的


我将最坏情况计算为
6n+5
,将一般情况计算为
O(n)
,是否正确?

取最常执行的指令。它是
num=Random.Next(100)
(与其他一些并列)。多久执行一次?N次;是O(N)

您还可以选择其他指令的频率。我们会看到这不重要。如果你这样做,你会得到O(6N+5),或者类似的东西(我会记下你的数字,因为这不重要)

如果你把东西加在一起,只保留最大的一个(当N很大时)。当N较大时,6N>5,所以只需保持O(6N)

放弃常数乘数。所以你保持N,得到O(N)

对于大N,除了最大的以外,我们丢弃所有的,因为我们只关心大N发生了什么。对于大N,较小的事情变得无关紧要


我们放弃常数乘法器,因为我们不关心指令的精确性,而只是:当N的大小翻倍时,时间会发生什么变化?当我们三倍,四倍,你有什么,N的大小,会发生什么?它是乘以6还是任何其他常数都无关紧要,所以我们放弃常数乘数。

是和否。它是在
O(n)
中,因为您迭代for循环
n次。赋值和声明是
O(1)
-常量

我不知道你从哪里得到了
6n+5
。前三行只执行一次。在最坏的情况下,循环被迭代n次,每个数字都比参数大。所以你有了
4*O(1)
。由于最后一条语句不在循环中,因此它也只执行一次。总共
3+4*n+1=4n+4
。主要术语是
4n
,去掉常数,你就得到
O(n)
时间


支配项的意思是,对于
n
到无穷大,如果你将它乘以
2,3,4
或除以其他一些数字,这实际上并不重要,当然,对于一些非常大的数字,这是适用的,因为计算机没有无穷大。

供将来参考:O(6n+5)与O(n)相同。删除所有常量,因为它们需要恒定的时间!这不属于java和C++,只有C(由于随机类)。此外,您应该编写代码,而不是粘贴图像。