1.数据对象在计算机中的组织方式:
逻辑结构
物理存储结构
2.抽象(描述数据类型的方法不依赖于具体实现)
与存放数据的机器无关
与数据存储的物理结构无关
与实现操作的算法和编程语言均无关
3.算法(algrithem)
一个有限的指令集
接受一些输入
产生输出
一定在有限步骤之后终止
每一条指令必须:
有充分明确的目标
计算机能处理的范围之内
描述不依赖与任何一种计算机语言及具体的实现手段
4.什么是好的算法
空间复杂度
时间复杂度
5.复杂度的渐进表示法
复杂度的渐进表示法
T(n) = O(f(n)) 表示存在常数C >0, n0>0 使得当 nn0 时有T(n) C·f(n)
T(n) = Ω(g(n)) 表示存在常数C >0, n0>0 使得当 nn0 时有T(n) C·g(n)
6.输入规模:
复杂度分析小窍门:
若两段算法分别有复杂度T1(n) = O(f1(n)) 和T2(n) = O(f2(n)),则
T1(n) + T2(n) = max( O(f1(n)), O(f2(n)) )
T1(n) T2(n) = O( f1(n) f2(n) )
若T(n)是关于n的k阶多项式,那么T(n)=Θ(nk)
一个for循环的时间复杂度等于循环次数乘以循环体代码的复杂度
if-else 结构的复杂度取决于if的条件判断复杂度和两个分枝部分的复杂度,总体复杂度取三者中最大