为什么一样的算法程序在在线测试系统上却不能通过

为什么一样的算法程序在在线测试系统上却不能通过,第1张

当你每次进行腐蚀膨胀这些 *** 作后,每次得到的二值图都会不一样,从而导致图像中白色像素点的总面积也就不一样了,所以你每次计算面积的结果也就不一样。除非你保存某一次进行腐蚀膨胀这些 *** 作的二值图,然后用bwarea求其面积,结果就不会变了。

首先看参数。

ph、do溶氧用的是在线电极,可以高温在位灭菌,原理是极谱电极详见百度百科极谱法

温度也是在线电极,这个很常规具体的可以百度知道

压力用的压力传感器,类型非常多

营养指标:糖浓度可以用在线生化分析仪

细胞浓度,OD:有在线的活细胞分析仪

算法复杂性

算法的复杂性是算法效率的度量,是评价算法优劣的重要依据。一个算法的复杂性的高低体现在运行该算法所需要的计算机资源的多少上面,所需的资源越多,我们就说该算法的复杂性越高;反之,所需的资源越低,则该算法的复杂性越低。

计算机的资源,最重要的是时间和空间(即存储器)资源。因而,算法的复杂性有时间复杂性和空间复杂性之分。

不言而喻,对于任意给定的问题,设计出复杂性尽可能低的算法是我们在设计算法时追求的一个重要目标;另一方面,当给定的问题已有多种算法时,选择其中复杂性最低者,是我们在选用算法适应遵循的一个重要准则。因此,算法的复杂性分析对算法的设计或选用有着重要的指导意义和实用价值。

简言之,在算法学习过程中,我们必须首先学会对算法的分析,以确定或判断算法的优劣。

1.时间复杂性:

例1:设一程序段如下(为讨论方便,每行前加一行号)

(1) for i:=1 to n do

(2) for j:=1 to n do

(3) x:=x+1

......

试问在程序运行中各步执行的次数各为多少?

解答:

行号 次数(频度)

(1) n+1

(2) n*(n+1)

(3) n*n

可见,这段程序总的执行次数是:f(n)=2n2+2n+1。在这里,n可以表示问题的规模,当n趋向无穷大时,如果 f(n)的值很小,则算法优。作为初学者,我们可以用f(n)的数量级O来粗略地判断算法的时间复杂性,如上例中的时间复杂性可粗略地表示为T(n)=O(n2)。

2.空间复杂性:

例2:将一一维数组的数据(n个)逆序存放到原数组中,下面是实现该问题的两种算法:

算法1:for i:=1 to n do

b[i]:=a[n-i+1]

for i:=1 to n do

a[i]:=b[i]

算法2:for i:=1 to n div 2 do

begin

t:=a[i]a[i]:=a[n-i-1]a[n-i-1]:=t

end

算法1的时间复杂度为2n,空间复杂度为2n

算法2的时间复杂度为3*n/2,空间复杂度为n+1

显然算法2比算法1优,这两种算法的空间复杂度可粗略地表示为S(n)=O(n)

信息学比赛中,经常是:只要不超过内存,尽可能用空间换时间。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12007629.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存