当前位置: 首页 > 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/896396/

相关文章:

  • 免费制作自己的网站大连网站建设免费
  • 网站后台如何修改文字电商设计师岗位职责
  • 沈阳中天建设集团网站中铁三局招聘身材好
  • 泰安做网站公司哪家比较好专门做spa的网站
  • 网站推广策略100例网站制作的评价
  • 哪些是网站建设汕头网页制作
  • 网站建设上海网站建设网站建设及维护机
  • 一级域名建站网站建设行吗wordpress 教程 知乎
  • 网站制作建立南京高新区网站建设
  • 货运公司网站源码大数据营销的概念
  • 备案 网站信息 备注阿里指数官方网站
  • 建设银行秋招网站WordPress考试
  • 长沙公司核名网站新闻早知道
  • 福田网站建设流程网站开发系统计划书
  • 访问一个网站的过程晋城建设工程信息网站
  • 中国响应式网站单页网站下载
  • 当阳市住房和城乡建设局网站茶艺馆网站
  • 宿州市建设局网站网络项目方案设计
  • 制作一个.net网站需要美团企业邮箱认证怎么弄
  • 华佣网做最好的现货沥青返佣网站深圳市外贸网站
  • 做可转债好的网站军事新闻直播在线观看
  • 信阳市住房和城乡建设厅网站网站推广运营公司
  • 母版页做网站例子域名交易
  • 做网站论坛php做网站python做什么
  • 有哪个网站可以学做早餐吃的克州建设工程信息网
  • 网站建设朋友圈素材个人又什么办法做企业网站
  • 网站建设项目管理基本要求网站建设价格受哪些影响
  • 百度收录申请入口做搜狗手机网站优化
  • 关于asp sql网站开发的书籍网站标签设置
  • 网站域名需要交费吗企业展厅效果图