程序 = 数据结构 + 算法
数据元素与数据对象
- 数据元素——组成数据的基本单位
- 与数据的关系:是集合的个体
- 数据对象——性质相同的数据元素的集合
- 与数据的关系是:集合的子集
数据结构:数据元素不是孤立存在的,他们之间存在某种关系,数据元素相互之间的关系称为结构。是指在相互之间存在一种或多种特定关系的数据元素集合。
逻辑结构和储存结构的关系:
- 与数据的关系是:集合的子集
- 储存结构式逻辑关系的映像与元素本身的映像。
- 逻辑结构是数据结构的抽象,储存结构式数据结构的实现
- 两者综合起来建立了数据结构间的关系
算法和算法分析
算法定义:对特定问题求解方法和步骤的一种描述,它是指令的有限序列。其中每个指令表示一个或多个操作。(解决问题的方法和步骤)
算法五个重要特性:
- 有穷性:一个算法总是再执行有穷步之后结束,且每一步都在有穷时间内完成。
- 确定性:算法中的每一条指令必须有确切的含义,没有二义性,在任何条件下,只有唯一的一条执行路径,即对于相同的输入只能得到相同的输出
- 可行性:算法是可执行的,算法描述的操作可以通过已经实现的基本操作执行有限次来实现
- 输入:一个算法有零个或多个输入
- 一个算法有一个或多个输出
算法的要求:
一个好的算法首先要具备正确性,然后是健壮性,可读性,在这几个方面都满足的情况下,主要考虑算法的效率,通过算法的效率来评判不同算法的优劣程度
算法效率主要从以下两个方面来考虑:
- 时间效率:指的是算法锁耗费的时间;
- 空间效率:指的是算法执行过程中所耗费的存储空间。
****时间效率和空间效率有时候是矛盾的
分析算法时间复杂度的基本方法
时间复杂度有嵌套最深层语句的频度决定的