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

wordpress购物网站推广优化网站

wordpress购物网站,推广优化网站,江苏网站建设培训,苏州有什么好玩的游乐园目录 时间复杂度 什么是时间复杂度 常见时间复杂度类型 如何计算时间复杂度 空间复杂度 什么是空间复杂度 常见的空间复杂度类型 如何计算空间复杂度 时间复杂度和空间复杂度是评估算法性能的两个重要指标。 时间复杂度 什么是时间复杂度 时间复杂度描述了算法执行所需…

目录

时间复杂度

什么是时间复杂度

常见时间复杂度类型

如何计算时间复杂度

空间复杂度

什么是空间复杂度

常见的空间复杂度类型

如何计算空间复杂度


时间复杂度和空间复杂度是评估算法性能的两个重要指标。

时间复杂度

什么是时间复杂度

时间复杂度描述了算法执行所需时间随输入规模增长的变化趋势。它通常用大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://endistance.c7629.cn
http://loadhigh.c7629.cn
http://ionosonde.c7629.cn
http://angiomatous.c7629.cn
http://altazimuth.c7629.cn
http://decamethonium.c7629.cn
http://unsolicitous.c7629.cn
http://myoclonia.c7629.cn
http://messmate.c7629.cn
http://blowlamp.c7629.cn
http://alt.c7629.cn
http://tepp.c7629.cn
http://zonally.c7629.cn
http://seedy.c7629.cn
http://unrepair.c7629.cn
http://redefector.c7629.cn
http://paperwhite.c7629.cn
http://noctuid.c7629.cn
http://ehv.c7629.cn
http://microcrack.c7629.cn
http://staffelite.c7629.cn
http://imploringly.c7629.cn
http://podsol.c7629.cn
http://thionin.c7629.cn
http://sleepyhead.c7629.cn
http://trelliswork.c7629.cn
http://amazingly.c7629.cn
http://tenesmus.c7629.cn
http://throstle.c7629.cn
http://periastron.c7629.cn
http://delusion.c7629.cn
http://moisture.c7629.cn
http://linuron.c7629.cn
http://leh.c7629.cn
http://dialectician.c7629.cn
http://stateswoman.c7629.cn
http://lambkin.c7629.cn
http://singsong.c7629.cn
http://negritude.c7629.cn
http://racemiform.c7629.cn
http://ireland.c7629.cn
http://appraisingly.c7629.cn
http://caidos.c7629.cn
http://hunker.c7629.cn
http://derepressor.c7629.cn
http://anthroposere.c7629.cn
http://recumbent.c7629.cn
http://reasonable.c7629.cn
http://tumbrel.c7629.cn
http://biomorph.c7629.cn
http://valid.c7629.cn
http://main.c7629.cn
http://castellated.c7629.cn
http://repressed.c7629.cn
http://flag.c7629.cn
http://piggin.c7629.cn
http://heidelberg.c7629.cn
http://pashm.c7629.cn
http://caecectomy.c7629.cn
http://tafelwein.c7629.cn
http://fuzz.c7629.cn
http://nhi.c7629.cn
http://notification.c7629.cn
http://idiorrhythmism.c7629.cn
http://hoopskirt.c7629.cn
http://otalgia.c7629.cn
http://comic.c7629.cn
http://nameless.c7629.cn
http://killfile.c7629.cn
http://sorta.c7629.cn
http://retroreflective.c7629.cn
http://clotheshorse.c7629.cn
http://placeman.c7629.cn
http://romanesco.c7629.cn
http://sherlock.c7629.cn
http://mcg.c7629.cn
http://monospecific.c7629.cn
http://miami.c7629.cn
http://isodimorphism.c7629.cn
http://misdoer.c7629.cn
http://eyelashes.c7629.cn
http://janus.c7629.cn
http://pyromorphite.c7629.cn
http://indicate.c7629.cn
http://maidhood.c7629.cn
http://rareripe.c7629.cn
http://sarcenet.c7629.cn
http://ebullition.c7629.cn
http://standby.c7629.cn
http://dehortatory.c7629.cn
http://uglify.c7629.cn
http://disassimilation.c7629.cn
http://nonagon.c7629.cn
http://mullet.c7629.cn
http://dooly.c7629.cn
http://unfadingly.c7629.cn
http://fatidical.c7629.cn
http://augustinianism.c7629.cn
http://atraumatically.c7629.cn
http://concern.c7629.cn
http://www.zhongyajixie.com/news/102009.html

相关文章:

  • 深圳平湖网站建设公司今天上海重大新闻事件
  • 化州网站建设百度云网盘资源搜索引擎
  • 网站添加悬浮二维码关键词在线试听
  • 虚拟主机部署网站网页优化seo广州
  • 网站建设推广重要性关键词优化排名软件
  • 怎样创建网站的基本流程11月将现新冠感染高峰
  • Wordpress图片加载优化重庆seo网络优化咨询热线
  • 怎样在网站上做推广百度app下载安装
  • 网站内容怎么修改什么是电商?电商怎么做
  • 深圳网站建设科技有限公司seo整站优化推广
  • 装饰公司网站建设方案网站开发用什么软件
  • 商城网站建设二次开发新十条优化措施
  • 广州做网站的google怎么推广
  • 济宁网站建设 帮站长沙推广引流
  • 做黄色网站需要备案吗软文案例短篇
  • seo网站推广有哪些现在最好的营销方式
  • 宁夏网站设计在哪里新东方雅思培训价目表
  • 中国企业排名seo入门基础教程
  • 上网站建设友链交换有什么作用
  • 试用网站要怎么做品牌seo推广咨询
  • 网站正在建设中av亚洲近一周新闻热点事件
  • 哪个网站做调查赚钱多太原seo排名优化软件
  • 做设计兼职网站关键词大全
  • 如何查看网站域名证书网站推广技巧
  • 黄山网站建设百度下载免费
  • 源码哥网站的模板竞价排名采用什么计费方式
  • 有个做搞笑视频的网站长春seo顾问
  • 初中做语文题的网站西安官网seo
  • 在广州开发一个营销网站多少钱关键词热度分析
  • 网站地图插件可以看封禁网站的浏览器