算法的空间复杂度指的是什么?
书上的定义是这样的:一个算法的空间复杂度,一般是指执行这个算法所需要的内存空间。但有这样一道练习题:算法的空间复杂度是指()。A,算法程序所占的存储空间。B,执行算法需要...
书上的定义是这样的:一个算法的空间复杂度,一般是指执行这个算法所需要的内存空间。
但有这样一道练习题:算法的空间复杂度是指()。A,算法程序所占的存储空间。B,执行算法需要的内存空间。
根据书上的定义,答案应该选择B,但习题给的答案却是A,习题答案的解析是:空间复杂度是指算法程序所需的存储空间。
所以,我矛盾了。去网上找答案有的说A对,有的说B对,但没有一个给出具体原因的。希望有人能够详细解释下究竟什么是算法的空间复杂度,谢谢。
对于答案A,是不是可以理解为就是我们所常说的一个软件的大小,也就是占硬盘的空间。而答案B,则理解为是程序运行时所占的内存空间? 展开
但有这样一道练习题:算法的空间复杂度是指()。A,算法程序所占的存储空间。B,执行算法需要的内存空间。
根据书上的定义,答案应该选择B,但习题给的答案却是A,习题答案的解析是:空间复杂度是指算法程序所需的存储空间。
所以,我矛盾了。去网上找答案有的说A对,有的说B对,但没有一个给出具体原因的。希望有人能够详细解释下究竟什么是算法的空间复杂度,谢谢。
对于答案A,是不是可以理解为就是我们所常说的一个软件的大小,也就是占硬盘的空间。而答案B,则理解为是程序运行时所占的内存空间? 展开
4个回答
展开全部
1、简单来说:算法的空间复杂度指的是占用内存,cpu等计算机资源的程度。
2、具体点来解释就是:空间复杂度(Space Complexity)是对一个算法在运行过程中临时占用存储空间大小的量度,记做S(n)=O(f(n))。比如直接插入排序的时间复杂度是O(n^2),空间复杂度是O(1) 。
而一般的递归算法就要有O(n)的空间复杂度了,因为每次递归都要存储返回信息。
一个算法的优劣主要从算法的执行时间和所需要占用的存储空间两个方面衡量。
2、具体点来解释就是:空间复杂度(Space Complexity)是对一个算法在运行过程中临时占用存储空间大小的量度,记做S(n)=O(f(n))。比如直接插入排序的时间复杂度是O(n^2),空间复杂度是O(1) 。
而一般的递归算法就要有O(n)的空间复杂度了,因为每次递归都要存储返回信息。
一个算法的优劣主要从算法的执行时间和所需要占用的存储空间两个方面衡量。
展开全部
这题毫无疑问选B。程序所“占”空间指的仅仅是代码长度,也就是你理解的占存储器空间;空间复杂度指的就是程序执行过程中由于需要所申请的内存空间,即所“需”空间。所以答案的解析没问题但答案给错了。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该是选择 D)执行算法需要的内存空间。【解析】 算法的复杂度主要包括算法的时间复杂度和算法的空间复杂度。所谓算法的时间复杂度是指执行算法所需要的计算工作量;算法的空间复杂度是指执行这个算法所需要的内存空间。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |