66得票3回答
O(1)的空间复杂度是什么?

我很难理解 O(1) 的空间复杂度是什么意思。我知道它表示算法所需的空间不随输入或使用算法的数据大小而增长。但这究竟意味着什么呢? 如果我们在一个链表上使用算法,比如 1->2->3->4,为了遍历到 "3",我们会声明一个临时指针,并遍历链表直到找到 "3"。这是否意味着我们仍然有 O(1...

65得票6回答
递归函数的空间复杂度

给定以下函数:int f(int n) { if (n <= 1) { return 1; } return f(n - 1) + f(n - 1); } 我知道大O时间复杂度为O(2^N),因为每次调用函数都会调用两次。 我不理解的是为什么空间/内存复杂度为O(N)?

56得票6回答
为什么快速排序使用 O(log(n)) 的额外空间?

我已经实现了下面的快速排序算法。我在网上看到说它需要 O(log(n)) 的空间。为什么会这样呢?我没有创建任何额外的数据结构。 这是因为我的递归调用会在栈上使用一些额外的空间吗?如果是这种情况,那么通过不使用递归(而是使其变成迭代)来减少内存使用是可能的吗?private static v...

48得票7回答
合并排序时间和空间复杂度

让我们以这个归并排序的实现为例void mergesort(Item a[], int l, int r) { if (r <= l) return; int m = (r+l)/2; mergesort(a, l, m); ------------(1) mergesort(a, ...

40得票8回答
在范围(1,2)内的三元组之和

给定一个包含 n 个正实数的数组,查找其中是否存在一个三元组,使得这个三元组的和位于 (1, 2) 的区间内。要求用线性时间和常数空间完成。 该数组未排序。 数字都是正数。 数字为实数。 感谢您的任何帮助。

28得票2回答
Python排序的空间复杂度是多少?

Python sort方法的空间复杂度是多少?我找不到任何关于它的明确文档。

28得票7回答
Arrays.sort()会增加时间复杂度和空间复杂度吗?

有一个涉及数组的问题,要求时间复杂度为O(n),空间复杂度为O(1)。 如果我使用Arrays.sort(arr),并使用一个for循环进行一次遍历,例如:public static int hello(int[]A){ Arrays.sort(A); for(int i=0;i&l...

28得票5回答
一个递归斐波那契算法的空间复杂度是多少?

这是来自《破解面试:第5版》的斐波那契数列递归实现int fibonacci(int i) { if(i == 0) return 0; if(i == 1) return 1; return fibonacci(i-1) + fibonaci(i-2...

26得票10回答
在使用“少量”额外空间的情况下,在列表中找到k个不重复的元素。

原始问题陈述如下: 给定一个32位无符号整数数组,其中每个数字都出现两次,除了其中三个数字只出现一次。在O(n)时间内使用O(1)额外空间找到这三个数字。输入数组是只读的。如果有k个例外情况而不是3个呢? 如果您接受由于输入限制(数组最多可以有2^33个条目)而导致非常高的常数因子,则可以...

26得票3回答
深度优先搜索的时间/空间复杂度

我查看了其他一些StackOverflow答案,它们与我的讲师在他的幻灯片中写的不同。 深度优先搜索的时间复杂度为O(b^m),其中b是搜索树的最大分支因子,m是状态空间的最大深度。如果m远大于d,则效率很低,但如果搜索树“多叉”,则可能比广度优先搜索快得多。 他接着说.. ...