文章目录
0. 写在前面
一个算法首先应该保证的是其解决问题的正确性与否
算法,即解决问题的方法。同一个问题,使用不同的算法,虽然得到的结果相同,但是耗费的时间和资源是不同的
算法的运行效率体现在时间复杂度和空间复杂度上
好算法的标准是:在符合算法本身的要求的基础上,使用算法编写的程序运行的时间短,运行过程中占用的内存空间少
1. 时间复杂度计算
1.1 求解算法的时间复杂度的具体步骤
-
找出算法中的基本语句
算法中执行次数最多的那条语句就是基本语句,通常是最内层循环的循环体,如code3中的基本语句为++x -
计算基本语句的执行次数的数量级
只需要计算基本语句执行次数的数量级,这就意味着只要保证基本语句执行次数的函数中的最高次幂正确即可,可以忽略所有低次幂和最高次幂项系数。 -
用大O记号表示算法的时间性能
将基本语句执行次数的数量级放入大O记号中
1.2 计算实例理解
//code1
++x;
S=0;
//code2
for(int i=0;i<n;i++)
{
++x;
S+=x;
}
//code3
for(int i=0;i<n;++i)
{
for(int j=0;j<n;++j)
{
++x;
}
}
上述例子,code1代码运行1