数据结构复习资料,java数据结构期末考试
数据结构复习资料,java数据结构期末考试
第二章 算法分析
1.算法分析是计算机科学的基础
2.增长函数表示问题(n)大小与我们希望最优化的值之间的关系。该函数表示了该算法的时间复杂度或空间复杂度。增长函数表示与该问题大小相对应的时间或空间的使用
3.渐进复杂度:随着n的增加时增长函数的一般性质,这一特性基于该表达式的主项,即n增加时表达式中增长最快的那一项。
4.渐进复杂度称为算法的阶次,算法的阶次是忽略该算法的增长函数中的常量和其他次要项,只保留主项而得出来的。算法的阶次为增长函数提供了一个上界。
5.渐进复杂度:增长函数的界限,由增长函数的主项确定的。渐进复杂度类似的函数,归为相同类型的函数。
6.只有可运行的语句才会增加时间复杂度。
7. O() 或者 大O记法:与问题大小无关、执行时间恒定的增长函数称为具有O(1)的复

8.所有具有相同阶次的算法,从运行效率的角度来说都是等价的。
9.如果算法的运行效率低,从长远来说,使用更快的处理器也无济于事。
10.要分析循环运行,首先要确定该循环体的阶次n,然后用该循环要运行的次数乘以它。(n表示的是问题的大小)
11.分析嵌套循环的复杂度时,必须将内层和外层循环都考虑进来。 12.方法调用的复杂度分析:
如:public void printsum(int count){
int sum = 0 ;
for (int I = 1 ; I < count ; I++)
sum += I ;
System.out.println(sun); }
printsum方法的复杂度为O(n),计算调用该方法的初始循环的时间复杂度,只需把printsum方法的复杂度乘以该循环运行的次数即可。所以调用上面实现的printsum方法的复杂度为O(
n
2
)。
13指数函数增长 > 幂函数增长 > 对数函数增长


