基本的复杂性混乱

时间:2013-09-27 07:04:26

标签: performance big-o

我有一个算法,它接收一个2D数组并且不使用额外的空间。那么算法的空间复杂度为O(n ^ 2)(因为我正在处理整个输入数组)或O(1)(因为算法不使用除输入之外的任何额外空间)


特别是在这个问题http://www.careercup.com/question?id=4959773472587776中,如果我们正确地使用2个额外的1维数组并不重要,因为无论如何输入空间复杂度是O(n ^ 2)。 /> 谢谢!

1 个答案:

答案 0 :(得分:1)

辅助空间复杂度不包括输入空间,而空间复杂度则包含输入空间。

对于辅助空间复杂度分析,仅考虑额外的内存消耗。如果您的算法不使用任何额外空间,则辅助空间复杂度为O(1)。

如果输入的大小为m(= nxn),并且您使用了2个大小为n的数组,那么辅助空间复杂度将为O(n)(或O(logm) )。

对于空间复杂性,由于你计算输入大小,你是对的,使用2个数组不会改变空间复杂性。