事前分析估算方法:在编写前,依据统计学,对算法进行估算。
算法效率影响因素:
1.算法方案
2.编译产生的代码质量
3.问题的输入规模
4.机器执行指令的速度
例子:
int i, n = 0, sum = 100; //执行1次
for(i = 1; i <= n; i++) //循环判断执行n+1次
{
sum += i; //执行n次
}
忽略头尾,循环了n次。
算法效率的度量,侧重是规模增长量的一个抽象,而非精确地定位执行多少次。
1.常数用1代替
2.只保留最高阶
3.如果最高阶存在且不为1,则去除该项常数系数
常有:常数阶,线性阶,平方阶,立方阶,对数阶O(log n),指数阶。
耗费时间排序:O(1) < O(logn) < O(n) < O(nlogn) < O(n^2) < O(2^n) < O(n!) < O(n^n)