时间复杂度:O(1)、O(n)、O(n²)、O(nlogn)等是什么意思,白话文解释专业术语。

(1)时间频度
一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道。但我们不可能也没有必要对每个算法都上机测试,只需知道哪个算法花费的时间多,哪个算法花费的时间少就可以了。并且一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间就多。一个算法中的语句执行次数称为语句频度或时间频度。记为T(n)。
(2)时间复杂度
一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数,用T(n)表示,若有某个辅助函数f(n),使得当n趋近于无穷大时,T(n)/f(n)的极限值为不等于零的常数,则称f(n)是T(n)的同数量级函数。记作T(n)=O(f(n)),称O(f(n)) 为算法的渐进时间复杂度,简称时间复杂度。

在T(n)=4n²-2n+2中,就有f(n)=n²,使得T(n)/f(n)的极限值为4,那么O(f(n)),也就是时间复杂度为O(n²)


看维基百科的解释,咱先不考虑数学上的概念,在计算机领域,n只能趋近于无穷大,所以,就暂且只考虑这个无穷大的方向。
T(n)=4n²-2n+2,当n无穷大的时候,后面的“-2n+2”的值对整体T(n)的影响就可以忽略不计。
用到计算机领域,那么,“-2n+2”的这部分执行时间就可以忽略不计。
在数学上,T(n)的极限值就是4n²。
上图中第二段的解释如下:
当4n²与5n³,这个两个不同级的数,比较的时候,那么前面的系数,4和5,也是无关紧要的,也是可以忽略的。




阅读更多
版权声明:觉得此文有用的,不嫌麻烦的,就留个言呐,或者点个赞呐(额,就是文章底部的“顶”啦),要是嫌弃麻烦呢,也麻烦点个赞嘛,要是实在不想点赞呢,也不是不可以。 但是,你要是想踩一脚呢,那还是赶紧,马上,快快的闪人。 小心我手里三十米长的大刀。 哼哼。想想都怕 !!! https://blog.csdn.net/qq_27093465/article/details/70690749
文章标签: 事件复杂度 O1
个人分类: 算法的思想
上一篇log4j中文日志乱码--输出到文件的日志,中文部分全是问号乱码的处理
下一篇Intellij IDEA 中 .properties文件中文显示乱码问题的解决
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭