算法的空间复杂度指的是什么?

书上的定义是这样的:一个算法的空间复杂度,一般是指执行这个算法所需要的内存空间。但有这样一道练习题:算法的空间复杂度是指()。A,算法程序所占的存储空间。B,执行算法需要... 书上的定义是这样的:一个算法的空间复杂度,一般是指执行这个算法所需要的内存空间。

但有这样一道练习题:算法的空间复杂度是指()。A,算法程序所占的存储空间。B,执行算法需要的内存空间。

根据书上的定义,答案应该选择B,但习题给的答案却是A,习题答案的解析是:空间复杂度是指算法程序所需的存储空间。

所以,我矛盾了。去网上找答案有的说A对,有的说B对,但没有一个给出具体原因的。希望有人能够详细解释下究竟什么是算法的空间复杂度,谢谢。
对于答案A,是不是可以理解为就是我们所常说的一个软件的大小,也就是占硬盘的空间。而答案B,则理解为是程序运行时所占的内存空间?
展开
 我来答
一骑当后
推荐于2018-10-08 · 知道合伙人数码行家
一骑当后
知道合伙人数码行家
采纳数:40299 获赞数:306427
网络、设备维护、电路、弱电检测。

向TA提问 私信TA
展开全部
  1、简单来说:算法的空间复杂度指的是占用内存,cpu等计算机资源的程度。
  2、具体点来解释就是:空间复杂度(Space Complexity)是对一个算法在运行过程中临时占用存储空间大小的量度,记做S(n)=O(f(n))。比如直接插入排序的时间复杂度是O(n^2),空间复杂度是O(1) 。
  而一般的递归算法就要有O(n)的空间复杂度了,因为每次递归都要存储返回信息。
  一个算法的优劣主要从算法的执行时间和所需要占用的存储空间两个方面衡量。
酋长的爷爷
2011-02-21 · TA获得超过920个赞
知道小有建树答主
回答量:306
采纳率:0%
帮助的人:403万
展开全部
这题毫无疑问选B。程序所“占”空间指的仅仅是代码长度,也就是你理解的占存储器空间;空间复杂度指的就是程序执行过程中由于需要所申请的内存空间,即所“需”空间。所以答案的解析没问题但答案给错了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
志宏高远
2012-09-07
知道答主
回答量:63
采纳率:0%
帮助的人:16.4万
展开全部
应该是选择 D)执行算法需要的内存空间。【解析】 算法的复杂度主要包括算法的时间复杂度和算法的空间复杂度。所谓算法的时间复杂度是指执行算法所需要的计算工作量;算法的空间复杂度是指执行这个算法所需要的内存空间。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
秒懂百科精选
高粉答主

2021-01-08 · 每个回答都超有意思的
知道答主
回答量:60.8万
采纳率:14%
帮助的人:3.1亿
展开全部

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式