1.三步计算时间复杂度

1 时间复杂度概述

  • 当一个程序产生的时候,就自然而然产生了执行时间,我们不可能每次都去一个一个运行进行比较。于是一种省时省力的方法产生了,这就是时间复杂度的来源。总的来说:

时间复杂度简化了我们的比较方法。

2 时间复杂度计算

  • 时间复杂度与执行次数有关。于是流程为:
    1.找出所有语句的频度并组成执行次数T(n)
    2.T(n)的数量级,忽略常量、低次幂和最高次幂的系数,f(n)=T(n)的数量级
    3.T(n)=O(f(n))
    举例:
 int num1, num2;            
 for(int i=0; i<n; i++){ 
     num1 += 1;
     for(int j=1; j<=n; j*=2){ 
        num2 += num1;
     }
 }

1.语句int num1, num2;的频度为1
语句i=0;的频度为1
语句i<n; i++; num1+=1; j=1; 的频度为n
语句j<=n; j=2; num2+=num1;的频度为n*log2(n)*;
(为什么会出现log2(n)呢?是因为循环x次,j=2^x ,当j=n时停止循环,就是2^x=n则有log2(n)=x时停止 ,即循环次数为log2(n)。)
**T(n) = 2 + 4n + 3n*log2n
2.忽略掉T(n)中的常量、低次幂和最高次幂的系数。
f(n) = n*logn
3.代入公式
T(n) =O(f(n))= O(n*logn)

3.时间复杂度比较

  • 常数阶O(1), 对数阶O(logn), 线性阶O(n), 线性对数阶O(nlogn), 平方阶O(n^2), 立方阶O(n^3),..., k次方阶O(n^k), 指数阶O(2^n) 。

Ο(1)<Ο(logn)<Ο(n)<Ο(nlogn)<Ο(n2)<Ο(n3)<…<Ο(2^n)和Ο(n!)
一些大小需要根据问题的规模n来进行判断。

  • Ο(1)表示基本语句的执行次数是一个常数。
  • O(logn)、Ο(n)、Ο(nlog2n)、Ο(n2)和Ο(n3)称为多项式时间。
  • Ο(2n)和Ο(n!)称为指数时间。(它们的大小和n有关。)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 算法复杂度 时间复杂度 空间复杂度 什么是时间复杂度 算法执行时间需通过依据该算法编制的程序在计算机上运行时所消耗...
    KODIE阅读 8,560评论 0 9
  • 算法的时间复杂度和空间复杂度-总结通常,对于一个给定的算法,我们要做 两项分析。第一是从数学上证明算法的正确性,这...
    Explorer_Mi阅读 5,314评论 0 1
  • 通常,对于一个给定的算法,我们要做 两项分析。第一是从数学上证明算法的正确性,这一步主要用到形式化证明的方法及相关...
    西域小码阅读 5,896评论 0 11
  • 什么是算法的复杂度 算法复杂度,即算法在编写成可执行程序后,运行时所需要的资源,资源包括时间资源和内存资源。 一个...
    儒生阅读 5,717评论 0 2
  • 0,时间复杂度是指执行算法所需要的计算工作量 1,在计算时间复杂度的时候,先找出算法的基本操作,然后根据相应的各语...
    Santiagogogo阅读 4,355评论 0 4

友情链接更多精彩内容