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

公司网站上线流程校园网站群建设

公司网站上线流程,校园网站群建设,南沙门户网站建设,网页游戏网页版空间复杂度 空间复杂度主要是衡量一个算法运行所需要的额外空间,在计算机发展早期,计算机的储存容量很小,所以空间复杂度是很重要的。但是经过计算机行业的迅速发展,计算机的容量已经不再是问题了,所以如今已经不再需…

空间复杂度

空间复杂度主要是衡量一个算法运行所需要的额外空间,在计算机发展早期,计算机的储存容量很小,所以空间复杂度是很重要的。但是经过计算机行业的迅速发展,计算机的容量已经不再是问题了,所以如今已经不再需要特别关注一个算法的空间复杂度。

空间复杂度也是一个数学表达式,是对一个算法的运行过程中临时占用储存空间大小的量度。

空间复杂度不是程序占用了多少bytes的空间,而是变量个数。空间复杂度计算也是使用大O渐进表示法。

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

例1:

void Bubblesort(int* a, int sz)
{for(int i = 0; i < sz-1; i++){int exchange = 0;for(int j = 0; j < sz-1-i; j++){if(a[j] > a[j+1]){int tmp = a[j];a[j] = a[j+1];a[j+1] = tmp;exchange = 1;}}if(exchange == 0)break;}
}

冒泡排序,只使用了常数个空间,所以空间复杂度为 O(1);

例2:

int* Fib(int n)
{if(n == 0)return NULL;int* fibarr = (int*)malloc(sizeof(int)*(n+1));fibarr[0] = 0;fibarr[1] = 1;for(int i = 2; i <= n; i++){fibarr[i] = fibarr[i-1] + fibarr[i-2];}return fibarr;
}

fibarr开辟了N个int类型的空间,所以空间复杂度为O(N)

例3:

int fac(int n)
{if(n == 0)return 1;return fac(n-1)*n;
}

再fac函数中调用了N次fac函数,递归了N次,开辟了N个栈帧,每个栈使用了常数个空间,所以空间复杂度O(N)

例4:

请回答fib函数的空间复杂度是多少?

int fib(int n)
{if(n < 3)return 1;return fib(n-1) + fib(n-2);
}

                        A. O(1)        B.O(N)        C.O(N^2)        D.O(2^N)

                                                           .

                                                           .

                                                           .

                                                           .                                                           

                                                           .

                                                           .

                                                           .

                                                           .

                                                           .

                                                           .

                                                           .

                                                           .

                                                           .

                                                           .

答案:O(N)

对于 fib(n),递归调用的最大深度取决于 n,因为每次递归都会对 n−1或 n−2进行调用。

尽管函数中有很多重复计算(导致时间复杂度是指数级的),但调用栈的最大深度只与输入 n 的大小成线性关系。

比如调用 fib(n),最深的递归路径是 fib(n) → fib(n-1) → fib(n-2) → ... → fib(1)

每次递归调用都需要在栈上分配空间。最大栈深度是递归树的高度。在这种实现方式下,递归树的高度为 O(n)。

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

相关文章:

  • 兰溪网站建设iis 建设网站
  • 兰州网站设计厂家云南网站设计公司
  • 温州市营销网站建设html5网页代码大全
  • 泉州网站建设公司当当网的网站怎么做的
  • 成都高端模板建站php网站忘记后台密码
  • 谷歌没收录网站主页 301重定向500套wordpress模板
  • 莆田网站开发公司电话衡水公司建网站费用
  • html用什么软件打开seo研究院
  • 虚拟币挖矿网站开发朝阳公共资源交易信息网
  • 推进政务服务网站一体化建设苏州工业园区两学一做网站
  • 手机网站自助建网络挣钱
  • 寻找做网站响应式网站建设
  • 杨思网站建设公司今天最新军事新闻
  • 有百度推广的网站抚顺网站设计
  • 做网站的职业安徽六安特产有哪些
  • 动静分离网站架构网络营销方式对比及分析论文
  • 网站后台关键词链接怎样做wordpress路径
  • 网站运营有哪些岗位在洪雅网站做企业招聘
  • 网站建设主题有哪些注意事项城市建设厅官方网站
  • 营销型网站建设排名网站建设与案例管理的心得体会
  • 云南省滇中引水工程建设管理局网站免费的小程序商店
  • 做网站玩玩微网站如何建立的
  • 淘宝客网站模板免费下载2345网址导航周公解梦
  • 服务器什么建网站做网站广告收入
  • 做网站需注意事项全屋定制家具品牌排行榜前十名
  • 曲靖程序网站建设子商务网站建设的一般流程图
  • 做网站青岛清风算法受影响的网站
  • 虹口集团网站建设顺义区网站建设
  • 购物类网站模板wordpress 图片多
  • seo关键词挖掘东莞外贸优化公司