CLASS1数据结构和算法绪论
1、定义
程序 = 数据结构 +算法
数据结构是研究非数值计算的程序设计问题中计算机的操作对象以及他们之间的关系和操作的一门课程。
2、传统上把数据结构分为逻辑结构和物理结构。
逻辑结构:数据结构中数据元素之间的相互关系。
物理结构:数据的逻辑结构在计算机中的存在形式。
3、四大逻辑结构
集合结构、线性结构、树形结构、图形结构。
4、物理结构
顺序结构
把数据结构存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的。
链式结构
把数据结构存放在任意的存储单元里,这组存储单元可连续可不连续。
CLASS2谈谈算法
1、定义
算法是解决问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。
2、特征
输入、输出、有穷性、确定性、可行性。
输入算法具有零个或多个输入。
输出算法至少有一个或多个输出。输出形式可以是打印形式输出,也可以是返回一个或多个值等。
有穷性
确定性算法的每个步骤都具有确定的含义,不会出现二义性。
可行性
3、算法设计的要求
正确性||无语法错误|对非法输入能够产生满足规格的输出|对故意刁难的测试输入都有满足要求的输出结果
可读性便于阅读、理解
健壮性
时间效率高、存储量低
CLASS3算法效率的度量方法
- 事后统计方法 ×
- 事前分析估算 ~
—–在计算机程序编写前依据统计方法对算法进行估算。
算法采用的策略、方案|编译产生的代码质量|问题的输入规模(输入量的多少)|机器执行指令的速度
函数调用的时间复杂度分析
常见的时间复杂度||
函数的渐进增长
判断一个算法的效率时,函数中的常数和其他次要项常常可以忽略,而更应该关注(最高项)的阶数。