有没有算法是O(n)时间并且必然使用O(n)辅助空间?

时间:2013-10-14 17:57:24

标签: algorithm

我注意到可以在线性时间内解决的问题可以调整为使用不超过O(1)的辅助空间。对路径图采取加权独立集问题。如果仅需要总重量,则需要O(1)空间。但是如果在解决方案中也要求set,那么它使用O(n)空间,但是,使用的辅助空间仍然是O(1)。允许线性时间算法的其他问题是最大子阵列求和问题,通过i位置旋转1D向量,将BST转换为已排序的双向链表等等。

1 个答案:

答案 0 :(得分:7)

Z algorithmlinear-time suffix array generationBurrows-Wheeler Transform等都需要O(n)辅助空间。

实际上,我认为即使是深度优先搜索,广度优先搜索等,在最坏的情况下也需要O(n)辅助空间(DFS的链表,BFS的单层树)。