时间复杂度

来源:互联网 发布:深圳网络教育机构 编辑:程序博客网 时间:2024/04/28 09:29
常见的算法时间复杂度由小到大依次为 :
O(1)<O(log2n)<O(n)<O(nlog2n)<O(n2)<O(n3)<...<O(2n)<O(n!)
O(1)表示基本语句执行的次数是一个常数,一般来说,只要不存在循环语句,其时间复杂度就是O(1);
O(log2n) , O(N) , O(nlog2n) , O(n2) 和 O(n3) 称为多项式时间 ,;
O(2n) , O(n!)称为指数时间复杂度

计算复杂度分析法则 :
1) 对于一些简单的输入输出语句或赋值语句,近似认为需要O(1)时间 ;
2) 对于顺序结构,需要一次执行一系列语句所要的时间采用大O下"求和法则"  
    求和法则 : 是指若算法的2个部分的时间复杂度分别为 T1(n)=O(f(n)) 和 T2(n)=O(g(n)),则T1(n)+T2(n)=O(max(f(n) , g(n)))
                                                                            特别的 T1(m)=O(f(m)) , T2(m)=O(g(m)),则T1(m)+T2(n) = O(f(m)+g(n))
3) 对于选择结构,比如if语句,他的主要时间消耗在then或者else语句里,需要主要的是检索语句也需要O(1)的时间
4) 对于循环结构.循环语句的运行时间主要体现在多次迭代中执行循环体以及检验循环天剑的时间耗费,一般可用大O下"乘法法则"
    乘法法则 : 是指若算法的2个部分时间复杂度分别为 T1(n)=O(fn) 和 T2(n) = O(g(n)) , 则T1*T2 =O(f(n)*g(n))
5) 对于复杂的算法,可以将它分成几个容易估算的部分,然后利用求和法则和乘法法则计算整个算法的时间复杂度







0 0
原创粉丝点击