跳到内容
相关文章

相关文章

“空间复杂性”是什么意思?
  • 难度级别 :基本
  • 最近更新时间 :24 2月24日,2021年

空间复杂性:
“空间复杂性”一词在很多地方被误用为辅助空间。以下是辅助空间和空间复杂性的正确定义。

辅助空间是算法使用的额外空间或临时空间。

空间复杂度算法是算法相对于输入大小的总空间。空间复杂性包括输入使用的辅助空间和空间。

例如,如果我们想在空间基础上比较标准排序算法,那么辅助空间将是比空间复杂性更好的标准。Merge Sort使用O(n)辅助空间,插入排序和堆排序使用O(1)辅助空间。所有这些排序算法的空间复杂性是O(n)。

空间复杂性是时间复杂性的平行概念。如果我们需要创建一个大小的数组,这将需要O(n)空间。如果我们创建了二维尺寸为n * n,则需要o(n2)空间。



在递归调用堆栈空间也计算。

例子 :

Int add (Int n){if (n <= 0){return 0;}返回n + add (n-1);在这里,每个调用都给堆栈添加一个级别:添加(4)2。- - - - - - >添加(3)3。- - - - - - >添加(2)4。- - - - - - >添加(1)5。-> add(0)这些调用都被添加到调用栈中,占用实际内存。所以它需要O(n)个空间。

但是,因为你有n个呼叫总数并不意味着它需要O(n)空间。

看看下面的函数:

int addSequence (int n){int sum = 0;For (int I = 0;我< n;i++){sum+ = pairSum(i, i+1);}返回总和;} int paiSem(int x, int y){返回x + y;会有大约O(n)次对pairSum的调用。然而,这些调用并不同时存在于调用堆栈中,所以您只需要O(1)空间。

注意:有必要指出,空间复杂度取决于各种因素,比如编程语言、编译器,甚至是运行算法的机器。

如果您发现任何不正确的任何内容,请写出评论,或者您想要共享有关上面讨论主题的更多信息。

注意读者!现在不要停止学习。掌握所有重要的DSA概念DSA自定进度课程以学生友好188bet2021欧洲杯的价格,成为行业准备。

我的个人笔记 arrow_drop_up.
推荐的文章
页 :