O(n)是啥

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了O(n)是啥相关的知识,希望对你有一定的参考价值。

O(n)是什么

是什么算法.

O(n)不是算法,它是一个函数,是一个表征算法时间复杂度的一个函数。

计算机科学中,算法的时间复杂度是一个函数,它定性描述了该算法的运行时间。这是一个关于代表算法输入值的字符串的长度的函数。时间复杂度常用大O符号表述,不包括这个函数的低阶项和首项系数。

使用这种方式时,时间复杂度可被称为是渐近的,它考察当输入值大小趋近无穷时的情况。

扩展资料:

算法复杂度分为时间复杂度和空间复杂度。

其作用: 时间复杂度是指执行算法所需要的计算工作量;

而空间复杂度是指执行这个算法所需要的内存空间。(算法的复杂性体现在运行该算法时的计算机所需资源的多少上,计算机资源最重要的是时间和空间(即寄存器)资源,因此复杂度分为时间和空间复杂度)。

计算方法:

1、一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数,用T(n)表示,若有某个辅助函数f(n),使得T(n)/f(n)的极限值(当n趋近于无穷大时)为不等于零的常数,则称f(n)是T(n)的同数量级函数。记作T(n)=O(f(n)),称O(f(n)) 为算法的渐进时间复杂度,简称时间复杂度。

分析:随着模块n的增大,算法执行的时间的增长率和 f(n) 的增长率成正比,所以 f(n) 越小,算法的时间复杂度越低,算法的效率越高。

2、在计算时间复杂度的时候,先找出算法的基本操作,然后根据相应的各语句确定它的执行次数,再找出 T(n) 的同数量级,找出后,f(n) = 该数量级,若 T(n)/f(n) 求极限可得到一常数c,则时间复杂度T(n) = O(f(n))。

则该算法的时间复杂度:T(n) = O(n^3) 注:n^3即是n的3次方。

3、在pascal中比较容易理解,容易计算的方法是:看看有几重for循环,只有一重则时间复杂度为O(n),二重则为O(n^2),依此类推,如果有二分则为O(logn),二分例如快速幂、二分查找,如果一个for循环套一个二分,那么时间复杂度则为O(nlogn)。

参考资料:百度百科-时间复杂度

参考技术A

O(n)

是一个函数,是一个表征算法时间复杂度的一个函数。

计算机科学中,算法的时间复杂度是一个函数,它定性描述了该算法的运行时间。这是一个关于代表算法输入值的字符串的长度的函数。时间复杂度常用大O符号表述,不包括这个函数的低阶项和首项系数。使用这种方式时,时间复杂度可被称为是渐近的,它考察当输入值大小趋近无穷时的情况。

算法复杂度分为时间复杂度和空间复杂度。

其作用: 时间复杂度是指执行算法所需要的计算工作量;

而空间复杂度是指执行这个算法所需要的内存空间。(算法的复杂性体现在运行该算法时的计算机所需资源的多少上,计算机资源最重要的是时间和空间(即寄存器)资源,因此复杂度分为时间和空间复杂度)。

参考技术B 回答

亲,正在为您解答。O型血也是血液当中的一种。因为血型可以分为A型、B型、AB型还有O型。O型血是只在红细胞表面上,既不含有A抗原,也不含有B抗原,民间俗称万能输血者。但是因为在血浆中含有抗A和抗B两种抗体,可能会导致受血者有不同程度的红细胞溶血。所以O型血是不可以任意的输给其他人的。血型O型的RH阳性血不可以输RH阴性的任何血型,只可能少量的输给RH阳性的任何血型。但是O型血的人是不可以接受其他血型输血的,这样容易出现溶血反应。

参考技术C O(n)表示时间复杂度,它是衡量一个算法消耗时间的量度

如:计算f(x)=x^3+2x^2+5x-6中,随着x的不断趋向极端(即正无穷与负无穷)时,x^3越来越起主导作用,所以我们称这个算法的时间负杂度为O(3)
参考技术D 时间复杂度,了解其含义,可以看一些算法方面的书

时间为O(nlg n)的排序算法 如快速排序 堆排序 nlg是啥意思。好象是lgn。 啥意思?

准确来说,是log(2,n),即以2为底取n的对数.
该时间复杂度的产生是由于算法中使用了二分法.二分法的其中一个显著的标志就是使得渐进复杂度变为2底对数级别.
直观来说,对于1000个数的排序,效率为O(n)的排序(假设有)将花费1000"单位"的时间,那么O(n²)的排序将花费10^6"单位"的时间.而O(nlogn)的排序将花费 1000*log(1000) ≈ 10000 "单位"的时间.
这里可以看出其效率的显著优势,
而通过函数有关特征可以得知,对数函数是增长的越来越慢的,这就使得O(nlogn)的排序可以在越大的工作量中和平方级排序拉大差距.
参考技术A lgn是对2取对数
意思是找一个数使得2^x=n那么lg n=x
参考技术B 组的手向那边窜

以上是关于O(n)是啥的主要内容,如果未能解决你的问题,请参考以下文章

o值27.76n值28.03是啥意思

O(n)是啥

时间为O(nlg n)的排序算法 如快速排序 堆排序 nlg是啥意思。好象是lgn。 啥意思?

ACM程序设计训练,里面的Time Limit和Memory Limit 是啥意思??怎么判断自己写的程序是不是符合限定条件

convention是啥意思

最近在研究算法,书上一直说时间是O(logn),但是没有明确说logn的底是啥,这样理解是不是准确?