1.程序追求的3点
1)准确性:解决问题
2)健壮性:在任何情况下不会奔溃
3)运行效率:时间复杂度、空间复杂度
2.时间复杂度表示
O(频度)
即O括号中,是代码运行了多少次
for(int i=0;i<n;i++){
int a =b+c;
}
运行n次,即O(n)
常见的时间复杂度排序:
O(1)常数阶 < O(logn)对数阶 < O(n)线性阶 < O(n2)平方阶 < O(n3)(立方阶) < O(2n) (指数阶)
时间复杂度的简化:
去掉运行时间中的所有加法常数。(例如 n2+n+1,直接变为 n2+n)
只保留最高项。(n2+n 变成 n2)
如果最高项存在但是系数不是1,去掉系数。(n2 系数为 1)