asymptotic-complexity相关内容

什么是次线性算法?

我的一位同事问了我以下问题。 Which of the following expressions is not sublinear? O(log log n) O(n) O(logn) O(root(n)) 我已经通过了https://en.wikipedia.org/wiki/Time_complexity#Sub-linear_time,但不能,但我不确定我是否完全理解了它。有谁能 ..
发布时间:2022-08-13 17:33:16 其他开发

算法的渐近复杂性

我想知道在使用Big-theta表示法的以下算法中,此过程可以返回的最小值和最大值是多少。算法为: procedure F(𝐴[1..n]) s = 0 for i = 1 to n j = min(max(i,A[i]),n³) s = s + j return s 推荐答案 编辑:删除了原始答案,因为它回答了错误的问题。 分析 ..
发布时间:2022-04-15 18:44:03 其他开发

在Python中列表的大小调整系数是多少

例如,Java中的ArrayList的大小调整系数为2。当ArrayList所环绕的数组空间不足时,该数组的所有元素都将转移到一个新数组中,该数组的大小是原始数组的2倍。 既然Python列表/数组自然是动态的,那么它们的大小调整因素是什么?或者,他们是否使用其他一些扩展方法?如果是的话,那是什么方法呢?它的渐近运行时(大O)是多少? 推荐答案 特别是objects/listobje ..
发布时间:2022-04-15 18:36:52 Python

将 n 个数字插入二叉搜索树的复杂度

我有一个问题,它说“计算将 n 个数字插入二叉搜索树的过程的紧时间复杂度".它并不表示这是否是平衡树.那么,对于这样的问题,可以给出什么样的答案呢?如果这是一棵平衡树,则高度为 logn,插入 n 个数字需要 O(nlogn) 时间.但这是不平衡的,在最坏的情况下甚至可能需要 O(n2) 时间.找到将 n 个数字插入 bst 的紧时间复杂度是什么意思?我错过了什么吗?谢谢 解决方案 即使树 ..

.NET 集合类的渐近复杂性

有没有关于.NET集合类(Dictionary、List代码> 等等...)? 我知道 C5 库的文档包括一些关于它的信息(example),但我也对标准的 .NET 集合感兴趣......(PowerCollections 的信息也很好). 解决方案 MSDN 列出了这些: 字典 列表 SortedList(编辑:错误链接;这是通用版本) SortedDictionar ..
发布时间:2021-12-27 17:45:07 C#/.NET

如何在已排序的链表上应用二分搜索 O(log n)?

最近我在链表上遇到了一个有趣的问题.给出了排序的单向链表,我们必须从这个列表中搜索一个元素. 时间复杂度不应超过O(log n).这似乎我们需要在这个链表上应用二分搜索.如何?由于链表不提供随机访问,如果我们尝试应用二进制搜索算法,它将达到 O(n),因为我们需要找到列表的长度并转到中间. 有什么想法吗? 解决方案 使用纯单向链表当然不可能. 草图证明:要检查单向链表的最 ..

Big-O 和 Little-O 表示法之间的区别

Big-O 表示法 O(n) 和 Little-O 表示法 o(n)? 解决方案 f ∈ O(g) 说,本质上 对于至少一个常量k > 0的选择,你可以找到一个常量a使得不等式0 a 成立. 请注意,O(g) 是满足此条件的所有函数的集合. f ∈ o(g) 说,本质上 对于每个常数k > 0的选择,你可以找到一个常数a使得不等式0 a 成立. 再次注意 o( ..

HashMap 与 ArrayList 插入性能混淆

根据我的理解,hashmap 插入是 O(1),对于 arraylist,插入是 O(n),因为对于 hashmap,hashfunction 计算哈希码和索引并插入条目,数组列表每次都会进行比较输入一个新元素. 解决方案 首先,复杂度为 O(1) 的操作并不总是比复杂度为 O(n) 的操作花费的时间少.O(1) 仅意味着操作需要一个常数时间(可以是任何值),而不管输入的大小.O(n) 意 ..

递归T(n)= 2T(n/2)+(n-1)

我有这种复发: T(n)= 2T(n/2)+(n-1) 我的尝试如下: 树是这样的: T(n)= 2T(n/2)+(n-1)T(n/2)= 2T(n/4)+((n/2)-1)T(n/4)= 2T(n/8)+((n/4)-1)... 树的最高点:(n/(2 h ))-1 = 1⇒h = lg n-1 = lg n-lg 2 最后一级的费用:2 h = 2 lg n-lg 2 ..
发布时间:2021-04-15 19:29:26 其他开发

计数排序的时间复杂度

我正在学习算法课程,在那里我看到计数排序的时间复杂度为O(n + k),其中k是数字范围,n是输入大小.我的问题是,当k和n之间的差异太大时,例如当k = O(n 2 )或O(n 3 )时,我们可以说复杂度是O(n 2 )还是O(n 3 )?那么在这种情况下,计数排序不是一个明智的方法,我们可以使用合并排序.我对吗? 解决方案 是的,您在所有方面都完全正确. 此外,我们可以做出更强的 ..
发布时间:2021-04-02 20:41:03 其他开发

递归函数的时间复杂度

我有一个Java函数,该函数接收一个矩阵(二维array [] []),并为该数组的更改创建动态选项数组,然后为该动态数组的每个选项递归创建一个动态数组。 最终,对于N个选项之一的每个选项,它还会创建N个其他选项。 被告知,其时间复杂度的函数为T(n)= T(n)* n,这可能吗?大O表示形式的渐近时间复杂度是什么? 解决方案 如果递归关系为T(n)= nT (n)那么递归永远不会停止。 ..
发布时间:2020-10-07 00:28:24 Java开发

函数的渐近比较

我想渐近地比较以下函数,然后将它们按升序排列。还要求提供适当的解释 lg((√n)!),lg(SquareRoot(n!)),SquareRootlg(n!),(lg(√n))!,(SquareRoot(lg n)) !,SquareRoot(lg n)! 解决方案 如果您对“一般解决方案” 感到疑惑,并且按照渐进函数进行比较。这是我的建议: 使用 BigO表示法的限制定义,一旦您 ..
发布时间:2020-10-07 00:28:14 其他开发

是否有编程方式或Eclipse插件来为Java方法计算大O表示法

是否有编程方式或eclipse插件来计算Java方法的big-O表示法? 解决方案 不,没有不是这样的插件,如果是的话,那将仅仅是一个近似值。也就是说,即使确定该程序是否将完成运行也很棘手-请参见停止问题。 现在,关于可能的近似值。假设您有一个插件,可以使用较小的数据集(例如 N = 1000 )和中等的数据集(例如 N = 10000 )测试程序code>)。如果您的程序在中等数据 ..
发布时间:2020-10-07 00:22:43 Java开发

典型表达式的渐近复杂度

下图所示的以下函数的渐近复杂度的递增顺序为: (A)f1(n); f4(n); f2(n); f3(n) (B)f1(n); f2(n); f3(n); f4(n); (C)f2(n); f1(n); f4(n); f3(n) (D)f1(n); f2(n); f4(n); f3(n) a)这个简单问题的时间复杂度顺序为--->(n ^ 0.99)*(logn) ..
发布时间:2020-10-07 00:20:32 其他开发

为什么pow(x,y)的时间复杂度为O(1),而x ** y的时间复杂度为O(n)?

为什么时间复杂度O(1)为 pow(x,y)而时间复杂度为O(n)的 x ** y ? 从 agf 查看评论此处 解决方案 该语句是错误的。 pow 与 ** 大致相同。 pow 和 ** 如果其参数为整数,则进行整数幂运算。 (Python 3具有自动的bignum支持,因此,即使a或b很大, a ** b 总是给出确切的整数结果。)这需要O (log(b))乘以平方的乘积 ..
发布时间:2020-10-07 00:18:49 Python

哪个Big-O渐近增长更快

我最近陷入了争论/辩论,我试图对正确的解决方案做出明确的裁决. 众所周知, n!增长非常快,但实际上有多快 ,足以“隐藏"可能添加到其中的所有其他常量? 让我们假设我有这个愚蠢的&简单程序(无特定语言): for i from 0 to n! do: ; // nothing 鉴于输入为n,那么它的复杂性显然是 O(n!) (甚至是 ϴ(n!) ,但这与此处无关) ..
发布时间:2020-09-20 21:08:20 其他开发