o值27.76n值28.03是啥意思
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了o值27.76n值28.03是啥意思相关的知识,希望对你有一定的参考价值。
o值27.76n值28.03是基因值为27.76,核壳蛋白基因为28.03。o为ORF基因,即开放读码框基因;n为n基因,即核壳蛋白基因。 参考技术A 新型冠状病毒核酸检测结果中的N和O,一般是指N基因和ORF基因。若N基因和ORF基因为阳性,一般提示新型冠状病毒感染阳性。O(1), O(n), O(n*n) 内存是啥意思? [复制]
【中文标题】O(1), O(n), O(n*n) 内存是啥意思? [复制]【英文标题】:what is the meaning of O(1), O(n), O(n*n) memory? [duplicate]O(1), O(n), O(n*n) 内存是什么意思? [复制] 【发布时间】:2012-01-03 22:51:14 【问题描述】:可能重复:Plain English explanation of Big O
很多时候,当谈到算法的时间复杂度时,内存也会被考虑在内。我想知道big-O(1)、big-O(n)、big-O(n*n)内存是什么意思?
它与时间复杂度有什么关系?
【问题讨论】:
复制:***.com/questions/3739768/what-is-big-o-notation 衡量复杂性,而不是内存。 我猜你说的是“Big Oh”(或“Big O”)。以下***页面对此进行了相当详细的解释:en.wikipedia.org/wiki/Big_O_notation 你的意思是 o(n) 还是 O(n)?有很大的不同。 @NullUserExceptionఠ_ఠ:好吧,OP 确实明确要求空间和时间复杂度之间的关系,这里没有涉及。尽管我确实发现这个问题相当广泛,但我不会投票结束。 【参考方案1】:正如 xmoex 所说:
o(1) 构成恒定的内存使用量。所以输入量是无关紧要的。
o(n) 构成线性内存使用。所以更多的输入意味着线性更多的内存。
o(n*n) 构成二次内存使用。所以更多的输入意味着更多的内存(平均 x^2。
在大多数情况下,这种内存复杂度度量完全独立于时间复杂度的度量。对于计算机算法,重要的是要知道算法将如何管理这两种复杂性以决定算法的质量。但是,两者必须分别计算。一个可能比另一个更重要,具体取决于您的用例和问题环境。
【讨论】:
-1 表示“完全独立”的备注。当一个算法占用 o(f(n)) 空间(即 little-o)时,它也需要 o(f(n)) 时间。 并非总是如此。是的,内存和时间可能存在相同的复杂性。然而,也有可能有一种算法需要的时间少于空间。空间复杂度可能为 o(f(n)),时间复杂度 > o(f(n))。 这是一个小问题,所以它是一个下限。 这又是不正确的。下界是 omega 而不是小写 omicron。 little-o 表示保证低于不低于或等于。 Big-O 表示 =,little-Omega 表示 >,theta 表示 =,而 ~ 表示所有广泛用途 =。 你说得对,我记错了。但是,“完全独立”仍然不正确。时间不能少于空间,至少在图灵机上是这样。【参考方案2】:o(1) 表示恒定的平均内存使用量,与输入的大小无关 o(n) 表示如果您正在处理 n 个元素,您的平均内存需求会线性增长 o(n*n) 表示如果您有 n 个要处理的元素,您的平均内存需求将呈二次方增长
有一篇关于所谓的big o notation 的 wiki 文章(也包括很少的 o...)
【讨论】:
【参考方案3】:内存方面的复杂性意味着在增加要处理的项目数量的同时所需的内存大小增长速度有多快。一个很好的例子是排序算法。
O(1)
和 O(log n)
表示虽然对 N 项排序算法需要的内存少于为 N 项分配的总内存。 (AKA 就地排序)
O(n)
- 内存消耗是线性的,所以只要项目计数增长,内存消耗就会增长
O(n*n)
表示该算法需要更多的额外内存。
【讨论】:
“O(n * n) 意味着算法需要更多的额外内存” 非常模糊。最好指定它需要 二次元 的内存。仍然 +1 以便于解释。【参考方案4】:这里大家已经解释了大O符号的含义。所以,我不打算再解释了。但我会简要解释一下。
以任何没有循环的小程序为例。
int a=1;
print("%d",a);
这个程序的执行时间可以忽略不计。设申报和打印为单位时间。所以它的时间复杂度是O(1)
另一个循环运行n次的程序
int a,i;
long n=10000000;
for(i=0;i<n;i++)
// doing some calculations
正如您在此处看到的,声明所需的时间可以忽略不计,即 O(1)。如果我们让第 4 行将花费一些时间单位,即 O(n)。那么,总的时间复杂度将是
O(1)+O(n)=O(n).
现在你可以理解 O(n*n) 即 2 个循环。
为了更好的理解……
在未排序的列表中找到一个项目 = O(n)
通过简单算法或冒泡排序将两个 n 位数字相乘 =O(n*n)
使用二分查找 =O(log n) 在有序数组中查找项目
蛮力推销员问题 = O(n!)
【讨论】:
【参考方案5】:我不确定你的意思是 big-O 还是 little-O,但我会更笼统地回答。
它对记忆的意义与对时间的意义相同。如果一个函数在内存 O(1) 中增长,那么无论输入大小如何,它都会使用恒定数量的内存。如果一个函数在 O(n) 中增长,它使用线性量,而 O(n*n) 它使用二次量。
【讨论】:
以上是关于o值27.76n值28.03是啥意思的主要内容,如果未能解决你的问题,请参考以下文章
我试图了解下面预测模型的形状值。请帮助我理解价值和解释器的o / p是啥意思?
ConfigurationManager.AppSettings["conStr"]是啥意思?要详细解释~~O(∩_∩)O~