12得票2回答
算法的大O复杂度 - LZW和Huffman

在大O符号表示法下,Lempel-Ziv-Welch和Huffman压缩算法的时间和空间复杂度是什么?谷歌无法满足我的需求。 谢谢, Francisco

12得票2回答
unordered_map 的最坏情况是什么?

我发现很多关于map和unordered_map复杂度的帖子。据说unordered_map的最坏情况复杂度为O(N)。我的输入是像1 2 5 6 9 11 12..这样已排序的值。我需要插入、查找和删除一个值,而且我会经常进行插入/删除操作。我考虑使用set,它在所有情况下的复杂度都是log...

11得票3回答
循环中声明的变量会使空间复杂度变为O(N)吗?

如果在循环N次的for循环内声明变量,即使这些变量每次循环重复时都会超出范围,空间复杂度是否仍然为O(N)? for(var i = 0; i < N; i++){ var num = i + 5; }

11得票1回答
C++ string类erase成员函数的时间和空间复杂度

我想知道是否有人了解C++的string::erase函数的实现方式及其复杂度。我知道C++ string是字符对象。我假设它不会分配和创建一个新的字符对象,然后从旧字符串中复制字符O(n)次并占用O(n)空间。它会将字符向左移动O(n)次且仅在O(1)空间中吗?我在cplusplus.com...

11得票3回答
能否使用O(1)空间复杂度实现快速排序?

从我理解维基百科关于快速排序空间复杂度的解释来看,快速排序的空间复杂度来自于它的递归性质。我很好奇能否以非递归的方式实现快速排序,并在此过程中使其具有常数空间复杂度。

10得票4回答
术语O(1)空间和不使用额外空间的含义 (注意:这是一个提问标题,无需回答) 指令O(1)空间和不使用额外空间分别指什么?

这对我来说有点令人困惑。当约束条件如下时,解决给定问题的方法应该是什么: 1)不使用额外的空间: 例如:如果我想要对一个给定数组进行排序,有几种方法可以做到。冒泡排序(只是循环,没有递归地进行交换)。我认为这被称为不使用额外空间。 如果我使用递归来排序元素,情况又如何?它是否与“不使用额外空...

10得票4回答
Python列表的list.clear()方法的时间和空间复杂度是什么?

我正在撰写一篇有关Python list.clear() 方法的博客文章,我还想提及底层算法的时间和空间复杂度。我原本以为时间复杂度是O(N),需要迭代每个元素并释放内存。但是,我在一篇文章中发现这实际上是一个O(1)操作。然后,我搜索了CPython实现方法的源代码,并找到了一个我认为是li...

10得票5回答
数组的空间复杂度是什么?

我有一个大小为N的数组,其中N<=200。 在考虑到约束条件N的情况下,这里的空间复杂度将会是O(1)或(N)。

10得票3回答
头部反转与尾部反转的空间复杂度对比

在许多系统中,head.reverse 需要与列表大小成比例的空间,而 last 则只需要常量空间。是否有系统可以执行这样的转换? 对于 reverse.take n.reverse 也是如此吗? 编辑: 我想扩展我的问题: 我不追求具体的转换,我只是想达到任何优化的目的。

10得票2回答
递归算法的空间复杂度

在面试中,我被问及检查回文的问题的高效解决方法。 我可以有两种做法: 从 i = 0 到 i = n/2,比较第 i 个字符和第 n-i 个字符是否相等。 使用递归来检查第一个字符和最后一个字符是否相同以及字符串的其余部分是否为回文。 第二种是递归的。我的问题是算法的递归和非递归版本...