算法的时间复杂度
-
基本介绍
-
时间频度:一个算法花费时间与算法中语句的执行次数成正比,哪个算法语句执行次数多,他花费的时间就多。一个算法语句执行次数成为语句频度或时间频度T(n)。
int total =0;//计算1加到100的值 int end = 100; for(int i=1;i<=end;i++){ total+=i;//1 } //T(n)=n+1; //1号语句执行了n此,最后还有一次判断i>end,退出,所以全语句执行最多的是i<=end这句,次数为n+1;
//第二种方法,直接用公式计算 total = (1+end)*end/2; //T(n)=1;
-
-
算法的时间复杂度
-
常数量可以忽略
-
举例
-
结论
1)2n+20和2n随着n变大,执行曲线无限接近,20可以忽略。 2)3n+10和3n随着n变大,执行曲线无限接近,10可以忽略。
-
因为随着n不断变大,他们的值是不断接近的,数量较大时,常数项可以忽略。
-
忽略低次项
-
举例
-
结论
1)随着n变大,3n+10可以忽略 2)随着n变大,5n+20可以忽略
-
-
忽略系数
- 举例
- 结论
分不分离和次方有关,高次系数可以忽略,次方不可忽略。
- 举例
-