了解几个必须的概念:
1.算法:由控制结构(循环、分支、顺序)和原操作(固有数据的操作)构成的,算法时间取决于两者的综合效果
2.时间频度:一个算法中的语句执行次数被称为时间频度,记为T(n)
3.时间复杂度:
1)为什么提出————为描述时间频度 T(n)随着问题规模 n 改变而产生的变化规律
2)基本概念————若T(n)/f(n)=C(C不等于0),则称T(n)=O(f(n))为算法的(渐进)时间复杂度
4.如何确定f(n)=A*X(n)+B*Y(n)+C*n
1)找出嵌套循环中最内层循环————确定最高次项的幂级
2)找出嵌套循环的层数————确定f(n)的项数 (其实感觉没必要)
3)列式简略计算下,确定f(n),把所有基准系数变为1,只留下最高次项
常见的算法时间复杂度由小到大依次为:Ο(1)<Ο(log2n)<Ο(n)<Ο(nlog2n)<Ο(n2)<Ο(n3)<…<Ο(2n)<Ο(n!)
理解 求和法则 乘法法则
1) Ο(1)表示基本语句的执行次数是一个常数,一般来说,只要算法中不存在循环语句,其时间复杂度就是Ο(1)。
2) Ο(log2n)、Ο(n)、 Ο(nlog2n)、Ο(n2)和Ο(n3)称为多项式时间,有效算法,多项式问题
3) Ο(2n)和Ο(n!)称为指数时间,非确定多项式问题

学习链接:https://blog.csdn.net/zolalad/article/details/11848739