各种时间复杂度到底差别有多大(有图有真相)

做算法分析的时候经常用到各种时间复杂度如O(n), O(logn), O(nlogn), O(n^2), ... 它们之间到底有多大的差别呢?下面这张图是一个直观的表达:

放大来看logn, n, 和nlogn的情况:

可见,如果我们能将时间复杂度从从O(n^2)减到到O(n),或从从O(n)减到到O(logn),都是性能上一个大的飞跃。

从另一个角度而言,大于O(n^2)或O(n^3)时间复杂度的程序实际上都是不可用的。根据维基百科,现在最强的CPU每秒大概可执行428亿条指令(4*10^10),而对于一个O(2^n)的程序,当n=100时,就算有2^100条指令,这样的CPU大概要算1万亿年(10^12)。

各种时间复杂度到底差别有多大(有图有真相),布布扣,bubuko.com

时间: 2024-11-05 19:02:38

各种时间复杂度到底差别有多大(有图有真相)的相关文章

详解算法的各种复杂度的差别有多大(带图)

做算法分析的时候经常用到各种时间复杂度如O(n), O(logn), O(nlogn), O(n^2), ... 它们之间到底有多大的差别呢?下面这张图是一个直观的表达: 可见,各个常用的时间复杂度之间都存在着巨大的差异.从O(nlogn)到O(n),从O(n)到O(logn),都是性能上的巨大飞跃. 从另一个角度而言,大于O(n^2)或O(n^3)时间复杂度的程序实际上都是不可用的.根据维基百科,现在最强的CPU每秒大概可执行428亿条指令(4*10^10),而对于一个O(2^n)的程序,当n

对比了下Google和百度,差别居然这么大

据说Google要入华(真的吗?),程序员的福音真的来了吗?如果Google能入成,那自然要拍手庆贺,因为,Google搜索和百度搜索,使用效果对程序员来讲差别真的很大. 举个简单例子,我们搜一下"angularjs".下面是百度的结果: 看见没,最靠前的两个结果是毛线?与AngularJS有什么关系吗? 再看看Google的结果: 啧啧,多好,第一个就是AngularJS官网!然后是初级教程!纳尼,简直不能比赞更赞! 版权声明:本文为foruok原创文章,未经博主允许不得转载.

MySQL到底能支持多大的数据量?

MySQL是中小型网站普遍使用的数据库之一,然而,很多人并不清楚MySQL到底能支持多大的数据量,再加上某些国内CMS厂商把数据承载量的责任推给它,导致很多不了解MySQL的站长对它产生了很多误解,那么,MySQL的数据量到底能支持多少呢?其实MySQL单表的上限,主要与操作系统支持的最大文件大小有关.我们来看一下官方的介绍. MySQL表最大能达到多少? MySQL 3.22 限制的表大小为4GB.由于在MySQL 3.23 中使用了MyISAM 存储引擎,最大表尺寸增加到了65536TB(2

夜读 | 读书和不读书的人生,差别有多大

夜读 | 读书和不读书的人生,差别有多大 2017-08-02新华社 导读 读书让人拥有富足的内心,那是千金不换的财富. - 1 - 我刚毕业时被分到一所乡村中学任教,那年百年一遇的大洪水冲毁了许多房屋村舍.兴冲冲到单位报道的我傻眼了:学校被淹!只看得到教学楼的房顶.眼瞅着夏天过完,学校还泡在近一米深的水里. 还好8月的最后几天,市里一所知名中学愿意接纳我们,拨出教室和宿舍供我们使用.师生这才安顿下来. 那时我认识了苏,一个家境优越的女孩,她和我同岁,也是刚刚毕业参加工作,不同的是她进入的是市内

到底什么才是大数据

作者:易仔阿克    时间:2014-08-06 博文标题:到底什么才是大数据 多年来一直从事信息化相关工作的朋友,对于IT界传出的各种新鲜词汇从来都不会感到陌生,勤奋而努力的IT人在实现让技术改变世界梦想的同时,也一次次革着自己的命,用热情和汗水推动着行业与社会的发展变革. 那么,面向服务的架构.分布式计算.并行计算.网格计算.云计算.大数据.移动互联网.物联网.智慧城市.智能交通.智慧地球等概念的推出就不足为奇了.正所谓:没有做不到的,只有想不到的,神奇的IT人借助科学技术的力量,改变着我们

int 和bigint差别有多大?

https://bbs.csdn.net/wap/topics/230059600 请问在mysql中int和bigint差别有多大?在什么情况下需要用到bigint? bigint 带符号的范围是-9223372036854775808到9223372036854775807.无符号的范围是0到18446744073709551615. int  普通大小的整数.带符号的范围是-2147483648到2147483647.无符号的范围是0到4294967295. 就是值得范围的问题,如果需要大

大数据入门,到底要怎么学习大数据?

很多人都知道大数据很火,就业很好,薪资很高,想往大数据方向发展.但该学哪些技术,学习路线是什么样的呢? 其实就是想告诉你的大数据的三个发展方向,平台搭建/优化/运维/监控.大数据开发/设计/架构.数据分析/挖掘.请不要问我哪个好学,哪个钱多. 先说一下大数据的4V特征: 数据量大,TB->PB 数据类型繁多,结构化.非结构化文本.日志.视频.图片.地理位置等: 商业价值高,但是这种价值需要在海量数据之上,通过数据分析与机器学习更快速的挖掘出来: 处理时效性高,海量数据的处理需求不再局限在离线计算

数据库连接池到底应该设多大?这篇文章可能会颠覆你的认知

转自:https://www.jianshu.com/p/a8f653fc0c54?from=singlemessage 本文内容95%译自这篇文章:https://github.com/brettwooldridge/HikariCP/wiki/About-Pool-Sizing 我在研究HikariCP(一个数据库连接池)时无意间在HikariCP的Github wiki上看到了一篇文章(即前面给出的链接),这篇文章有力地消除了我一直以来的疑虑,看完之后感觉神清气爽.故在此做译文分享. 接下

为什么anylase和scenaio中的平均响应时间差别会这么大?

场景里的响应时间截图如下所示: 结果里的响应时间截图如下所示: