数据结构与算法:空间复杂度

数据结构与算法:空间复杂度

数据结构与算法:时间复杂度_srhqwe的博客-CSDN博客

先看这上面的,不然这里可能不理解

空间复杂度:空间复杂度 (SpaceComplexity)是对一个算法在运行过程中临时占用存储空间大小的量度。. 一个算法在计算机 存储器 上所占用的存储空间,包括存储算法本身所占用的存储空间,算法的输入输出数据所占用的存储空间和算法在运行过程中临时占用的存储空间这三个方面。. 算法的输入输出数据所占用的存储空间是由要解决的问题决定的,是通过参数表由调用函数传递而来的,它不随本算法的不同而改变。. 存储算法本身所占用的存储空间与算法书写的长短成正比,要压缩这方面的存储空间,就必须编写出较短的算法。

简单地说:空间复杂度就是创建了临时、额外的变量的个数,和时间复杂度一样用O()表示.

例子:

创建其中就只有三个额外的临时变量,因为是常数个,常数个就用O(1)表示。

所以,空间复杂度就是O(1)

这里通过malloc()函数,创建了有n+1个元素的数组,和实际复杂度一样,去掉1,所以这里的空间复杂度就是O(n)

每次递归都会占帧,所以就会引出空间复杂度,占了一块就算一个空间复杂度,这里调用了N次递归

所以空间复杂度就是O(N)

这里的空间复杂度并不是O(2^N),而是O(N)

这里看似是同时使用栈,每个递归都还没释放,其实并不是,因为栈内存很小

,每次递归时,只能找到一种方向递归,然后一直递归下去直到尽头,再释放,再继续另一种方向递归.

如果有错,希望纠错

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

srhqwe

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值