当前位置: 首页 > news >正文

找人做自建房图纸去哪个网站台州做微网站

找人做自建房图纸去哪个网站,台州做微网站,深圳关键词,服装网站建设策划书的基本结构3.空间复杂度 空间复杂度也是一个数学表达式,是对一个算法在运行过程中临时占用存储空间大小的量度。 空间复杂度不是程序占用了多少bytes的空间,因为这个也没太大意义,所以空间复杂度算的是变量的个数。空间复杂度计算规则基本跟…

3.空间复杂度
空间复杂度也是一个数学表达式,是对一个算法在运行过程中临时占用存储空间大小的量度。
空间复杂度不是程序占用了多少bytes的空间,因为这个也没太大意义,所以空间复杂度算的是变量的个数。空间复杂度计算规则基本跟实践复杂度类似,也使用大O渐进表示法。


注意:函数运行时所需要的栈空间(存储参数、局部变量、一些寄存器信息等)在编译期间已经确定好了,因此空间复杂度主要通过函数在运行时候显式申请的额外空间来确定。

我们直接上例题来讲解

void lystyle(int* a, int n)
{assert(a);for (size_t end = n; end > 0; --end){int exchange = 0;for (size_t i = 1; i < end; i++){if (a[i - 1] > a[i]){swap(&a[i - 1], &a[i]);exchange = 1;}}if (exchange == 0)break;}
}

首先我们要思考一下void lystyle(int*a;int n)这个函数声明中创建的a和n算不算到空间复杂度里面去,显然是不用的

空间复杂度是对一个算法在运行过程中临时占用存储空间大小的量度。(计算的是函数额外创建的变量个数)

这整个函数里面一共创建了三个变量分别是exchange,i,n占用的内存是不同的

因此创建变量是常数个,O(1)这个地方不知道为啥是O(1)可以看上一期的暑期数据结构 时间复杂度-CSDN博客

我们接下来看一个很有意思的事

但是为啥会导致这样呢?

原因在于我们使用函数时会开辟一片空间,函数结束时会将那片空间还给系统 ,但是下次另一个函数使用时开辟的那个空间还是原来函数的

那么还是上一期的函数(时间复杂度我会放到每日一题以一个数学专业的学生去讲解)

long long Fib(int N)
{if (N <= 3)return 1;return Fib(N - 1) + Fib(N - 2);
}

那么这个地方的空间复杂度是多少呢?

有人可能说是O(0)但是只有函数本身声明中的变量才不算入空间复杂度里面,但是递归产生的变量会被算到时间复杂度里面

那么还有人可能说和时间复杂度一样是O(N*N),因为我每递归一次就执行了一次语句

但是结果也不对

那么答案是多少呢?

答案是O(N)

这个地方递归执行是有顺序的

这个地方return Fib(N - 1) + Fib(N - 2);

要先计算Fib(N - 1)再计算Fib(N - 2);

要计算Fib(N - 1)就要先算Fib(N - 2)+Fib(N -3 )

递归是一步一步实现的,不遇到return 不停止我们以N=6来画一个计算的过程图

这个地方我们看箭头4和5,我们先执行函数Fib(3)使用完之后函数空间还给系统,但是执行Fib(4)本质上再开辟的那个空间还是和Fib(3)一样的

因此这个地方同一深度的函数的是同一片空间(深度从上到下看)

因此这个地方的空间复杂度就是O(N)(我么只看最左侧看它最深度有多深就行)

http://www.yayakq.cn/news/410729/

相关文章:

  • 网站漂浮物怎么做专业建设网站公司排名
  • 帝国网站后台认证码错误网站建设误期违约金赔偿限额
  • 建设网站需要哪些域名网站建设哪方面最重要的呢
  • 企业网站建设犇类建筑分发平台
  • 泉州市住房与城乡建设网站汽车之家如何做团购网站
  • 毫州网站建设二手交易网站开发
  • 网站开发框架的作用网络优化工程师
  • 拼多多网站建设过程网站开发的检索速度在啥范围之内
  • 网站维护托管用asp做的几个大网站
  • 中国建设银行官网站e路护航营销网站优化推广
  • 淄博市建设档案馆网站flash成品网站
  • 江西省城乡建设厅网站手机app编程
  • 客户网站制作管理系统韩国设计交流网站
  • 义乌微信网站建设费用做电商从哪里入手
  • 上海有名的做网站的公司有哪些海口网站建设方面
  • 城固网站建设学建筑设计出来能干嘛
  • 做网站后期怎么维护网络培训seo
  • 30天网站建设 视频教程杭州网站优化排名
  • 网站做直播功能需要注册吗东明网站建设
  • 重庆信息门户网站wordpress海报生成器
  • seo计费管理系统株洲搜索引擎优化
  • 优化网站链接的方法广州做企业网站哪家好
  • 河南网站关键词优化代理微信小程序开发一般多少钱
  • 网站开发人员的岗位有网站架构的重要性
  • frp做网站长沙有什么好玩的地方
  • 如何查看网站的流量如何申请一个网站 做视频直播
  • linux 网站301什么是网络营销?网络营销的特点有哪些?
  • 建设银行网站-个人业务ui设计和网站开发
  • 免费外国网站浏览器wordpress企业建站视频教程
  • 大岭山东莞网站建设天眼查询个人怎么查