给您一个随机的问题。 如果您有一种方法必须检查数组中的每个单个位置,那么可以说该方法的符号为O(n)可以吗?

我不确定答案是否正确的原因是,据我所知,O(n)与数组中保存的项目数有关,而我的假设是基于数组?

#1楼 票数:0 已采纳

如果您的算法必须查看数组中的每个项目,则该算法为O(n)。 如果数组是否已满实际上是否无关紧要,因为您可以灵活地定义n。 它可以是数组的大小,也可以是数组中非null元素的数量。 如果您的算法必须查看空数组插槽以查看它们是否为空,请使用大小。 (如果这是一个实际的性能问题,则可能需要一个不同的数据结构。)

对于一个真正人为的示例,如果处理每个非null数组元素需要一个小时,而检查null则需要一个纳秒,那么您应该将n定义为实际存在的元素数,因为这将决定如何算法扩展。

  ask by translate from so

未解决问题?本站智能推荐:

3回复

此问题的正确大O符号是什么?

我和一个朋友就以下问题发生了争执: 如果对两个未知长度的数据集(例如,已排序的数组m和n)运行二进制搜索,并且必须定义整个函数的时间复杂度,那将是什么? 如果m> n是O(log(m + n))或O(log(m)),如果n> m是O(log(n))?
2回复

计算大O符号

我目前有以下伪代码,并且我试图找出问题的答案为什么是O(n)。 我认为答案将是O(n ^ 2),因为第一个for循环将运行'n'次,第二个for循环具有+ = n / 3,给它另一个(n除以某时间),这将简化到O(n ^ 2)。 有人可以解释为什么它是O(n)吗?
4回复

需要 O(n^2) 计算协助

我似乎无法弄清楚这一点:5n2 + 3n + 9 = O(n2)。 选择 c 和 n0。 使用 f(n) <= cg(n) 证明。 我尝试将其压缩为 3n + 9 / c - 5 <= n^2,但仍然无法找到解决方案。 我想我只是从错误的方式接近它。 Stackoverflow,请
3回复

麻烦理解little-o符号示例

我遇到这个问题 基本上我可以开始 但是我该如何解决其余的问题?
2回复

具有绝对价值的大O符号?

我正在阅读一些编程面试问题书,我看到了"O(|A|)"时间复杂度的参考。 我从未见过这种带有绝对值的符号。 一些研究让我得到了Big O Cheatsheet ,它在图表部分引用了这个符号。 我正在研究的问题是关于对数组进行分区,这实际上并不是一个图形问题(尽管我冒险表明我对该语句的无
1回复

找到LZMA2和BWT压缩算法的大O符号?

我正在写一篇关于Lemepel Ziv Markov链算法链2和burrows wheeler变换的文章,但我找不到这些算法的Big O符号。 我通过源代码查找了两者的伪代码,但我仍然无法找到符号。 我只能访问LZMA2 Java代码,但它中充斥着我通过它访问它的程序(而不是IDE)的方法。
6回复

理解大O符号 - 破解编码访谈示例9

我对这两个代码感到困惑。 代码1 代码2 (平衡二叉搜索树) 作者说代码1的运行时为O(2 ^ n),空间复杂度为O(n) 代码2是O(N) 我不知道这两个代码有什么不同。 看起来两者都是相同的二叉树
3回复

需要帮助分析 O(n) 复杂度

我一直在努力完成我的算法分析和数据结构作业。 有了 COVID-19 和电子学习,这很困难! 特别是因为我的教科书被推迟了:(。我想知道是否有任何好心人可以帮助我分析这些 O(n) 问题。 我在很大程度上理解它,但我在计算循环上的原始操作时非常挣扎,例如 for( i = 0; i < 2n