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

东台网络推广搜索引擎优化什么意思

东台网络推广,搜索引擎优化什么意思,网站数据库怎么做同步,做网站的网址目录 时间复杂度 什么是时间复杂度 常见时间复杂度类型 如何计算时间复杂度 空间复杂度 什么是空间复杂度 常见的空间复杂度类型 如何计算空间复杂度 时间复杂度和空间复杂度是评估算法性能的两个重要指标。 时间复杂度 什么是时间复杂度 时间复杂度描述了算法执行所需…目录 时间复杂度 什么是时间复杂度 常见时间复杂度类型 如何计算时间复杂度 空间复杂度 什么是空间复杂度 常见的空间复杂度类型 如何计算空间复杂度 时间复杂度和空间复杂度是评估算法性能的两个重要指标。 时间复杂度 什么是时间复杂度 时间复杂度描述了算法执行所需时间随输入规模增长的变化趋势。它通常用大O表示法来描述表示算法在最坏情况下的时间性能。 常见时间复杂度类型 常数时间O(1)。算法执行时间不随输入规模的变化而变化。线性时间O(n)。算法执行时间与输入规模成正比。平方时间O(n^2)。算法执行时间与输入规模的平方成正比通常见于嵌套循环。对数时间O(logn)。算法执行时间随输入规模的增长而缓慢增加常见于分治和二分查找算法。线性对数时间O(nlogn)。算法执行时间是输入规模与对数的乘积常见于快速排序或归并排序。指数时间O(2^n)。算法执行时间随输入规模指数增长常见于暴力搜索。 在大O表示法中logn一般指的是以2为底的对数因为绝大部分都只用考虑二分的情况以其他数为底的情况很少出现。 如何计算时间复杂度 exp.1 //Func1的时间复杂度为O(N) void Func1(int N) {int i 0;int count 0;for (i 0; i N; i){count;}int m 10;while (m){--m;}printf(%d\n,count); }该函数的运行时间主要跟输入的N的大小有关故为O(n)的时间。 至于说下面的执行的m次循环我们是不用理会的因为在输入的N很大的情况m次循环可以被忽略掉。我们算时间复杂度都是关注主要最主要的部分比如说O(n^2 2n) 那么时间复杂度是O(n^2)。 exp.2 //Func2的时间复杂度为O(N) void Func2(int N) {int count 0;int i 0;for (i 0; i N; i){count;}for (i 0; i N; i){count;}printf(%d\n,count); }这里咋一看时间复杂度是O(2n)但其实时间复杂度还是O (n)。 计算机运行的时间是非常快的所以即使n非常大n的常系数对于整个函数的运行时间是微乎其微的。 所以算时间复杂度也不用算n的常系数。 exp.3 //Func3的时间复杂度为O(1) void Func3() {int count 0;int i 0;for (i 0; i 100; i){count;}printf(%d\n,count); } 时间复杂度为O(1)因为是常数次运行。 exp.4 // BubbleSort的时间复杂度为O(N^2) void BubbleSort(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;} }外层循环执行n次内层循环执行n-1次、n-2次...等等差乘等比最会算出来会有n^2所以时间复杂度是O(n^2)。 exp.5 // BinarySearch的时间复杂度O(logN) int BinarySearch(int* a, int n, int x) {assert(a);int begin 0;int end n - 1;while (begin end){int mid begin ((end - begin) 1);//使用右移操作符相当于除以2if (a[mid] x)begin mid 1;else if (a[mid] x)end mid;elsereturn mid;}return -1; }二分查找的时间复杂度是O(logn)就是对n取以二为底的对数。 exp.6 // 阶乘递归Fac的时间复杂度为O(N) long long Fac(size_t N) {if (0 N)return 1;return Fac(N - 1) * N; }递归的次数同样也算进时间复杂度这里递归了n次所以时间复杂度是O(n)。 这里的空间复杂度也是O(n)因为递归调用函数会在栈上多开n块额外的空间。 exp.7 // 斐波那契递归Fib的时间复杂度为O(2^N) long long Fib(size_t N) {if (N 3)return 1;return Fib(N - 1) Fib(N - 2); }以这种方法算斐波那契数列的递归调用次数有点类似算完全二叉树的节点个数。 所以时间复杂度是O(2^n)。 总结 时间复杂度只需大概想想执行次数n的表达式取次数最大的那项也不用理会n的常系数。 如果涉及递归要想想递归函数的执行次数。 空间复杂度 什么是空间复杂度 空间复杂度描述了算法执行过程中所需的额外存储空间量也用大O表示法来描述。 常见的空间复杂度类型 常数空间O(1)。算法使用固定数量的额外空间与输入规模无关。线性空间O(n)。算法使用的额外空间与输入规模成正比。平方空间O(n^2)。算法使用的额外空间与输入规模的平方成正比。对数空间O(logn)。算法使用的额外空间随输入规模的增长而缓慢增加。线性对数空间O(nlogn)。算法使用的额外空间是输入规模与对数的乘积。 如何计算空间复杂度 exp.1 //sum的空间复杂度是O(1) int sum(int n) {int sum 0;for (int i 0; i n; i) {sum i;}return sum; } sum只额外开辟变量sum额外开辟的空间跟输入的n无关所以空间复杂度是O(1) exp.2 //Func的空间复杂度是O(n) void Func(int n) {int* arr (int*)malloc(sizeof(int) * n);//....} Func使用的空间复杂度是O(n)因为额外开辟的空间与n成正比。 总结 计算空间复杂度只需看使用的额外存储空间与输入数据规模大小的关系比如跟规模无关就是O(1)跟规模成正比就是O(n)其他O(n^2)等同理。 拜拜下期再见 摸鱼ing✨
http://www.w-s-a.com/news/106137/

相关文章:

  • 怎么用ps做网站ui邱县专业做网站
  • 国开行网站毕业申请怎么做大连旅顺口旅游攻略
  • 鲜花店网站源码成都专做婚介网站的公司
  • 合肥企业网站建设工哈尔滨公告
  • 华强北 做网站互联网服务平台入口
  • vi设计案例网站微信导航网站 dedecms
  • 青浦区做网站设计图片手绘图片
  • 做网站的基本功制作网站公司推荐
  • 阿里云快速建站教程个人网站 费用
  • 广东购物网站建设微信公众号制作模板免费
  • 阿里国际站韩语网站怎么做让移动网站
  • 北京外包做网站如何报价中国几大网络推广公司
  • 中国建设部网站关于资质wordpress 建app
  • 程序员找工作的网站哈尔滨建设信息网站
  • 公司 网站 方案高考写作网站
  • 网站后台如何登陆网站开发需求逻辑图
  • 市级档案网站建设情况分析server2008做DNS与网站
  • 公积金门户网站建设方案网站建设代理平台怎么做
  • 网站建设知识论文抖音开放平台是干什么的
  • 网站建设期末试卷大气简洁网站
  • 电子商务网站建设报告范文单位做网站怎么做
  • 优质的外国网站qq小程序在哪里打开
  • 商务网站建设与推广实训报告免费素材网站无水印
  • 外贸站seoapp开发公司历程概述
  • 沈阳网站推广¥做下拉去118cr陶瓷企业 瓷砖地板公司网站建设
  • 医院网站官方微信精神文明建设我做服装设计师的 求推荐资源网站
  • 微信网站建设需要那些资料昆明cms模板建站
  • 安庆网站建设兼职中企动力是500强吗
  • 网站排名优化技巧基于网站的网络营销方法有哪些
  • 摄影素材网站做知识问答的网站