总结
1.有效性,算法中的每一个步骤都应该能有效执行,并得到确定的结果
2.确定性,每一个步骤都应该是确定的,不应该含糊不清
3.有穷性,包含有限的步骤
4.有0或者多个输入,输入指的是执行算法时从外界获取的信息
5.有1或者多个输出
O记法
表示某种算法对于变量(即使用的元素个数)是如何变化的
int sum(int N)
{
int partialSum = 0;
for(int i = 0; i <= N; i++)//1+(N+1)+1
partialSum += i * i * i;//2* 1+ 1赋值=4N
return partialSum; //总=6N+4,O(N)
}//可简单计算N*1
最优时间复杂度,理想情况
最坏时间复杂度,最坏的情况
平均时间复杂度
计算规则
1.基本操作, 即只有常数项, 认为其时间复杂度为 O(1)
2.顺序结构, 时间复杂度按加法进行计算
(3) 循环结构, 时间复杂度按乘法进行计算
(4) 分支结构, 时间复杂度取最大值
(5) 判断一个算法的效率时, 往往只需要关注操作数量的最高次项, 其它次要项和
常数项可以忽略
(6) 在没有特殊说明时, 我们所分析的算法的时间复杂度都是指最坏时间复杂度
o(n^2)表示当元素个数变成10倍时,其执行时间按元素个数的平方增加