绪论

绪论


基本概念和术语:

数据:描述客观事物的数字、字符以及所有能输入到计算机中并被计算机程序处理的符号的集合。

数据元素:数据的基本单位,在计算机程序中,通常作为一个整体进行考虑和处理。

数据项:数据的不可分割的最小单位

数据对象:性质相同的数据元素的集合,是数据的一个子集。

数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。

另一种定义:按照逻辑关系组织起来的一批数据,按一定的存储方法把它存储在计算机中,并在这些数据上定义了一个运算的集合。


 

数据结构:

逻辑结构+存储结构+操作


逻辑结构:

  • 集合结构
  • 线性:线性表、栈、队列、串
  • 树型
  • 图型

存储结构:顺序存储(连续)、链式存储(不必连续)、索引、散列


算法

定义:指一系列确定的而且是在有限步骤内能完成的操作。

算法特点:

  • 可行性
  • 确定性
  • 有穷性
  • 0个或0个以上的输入
  • 至少一个以上的输出

算法设计的要求:

  • 正确性
  • 可读性
  • 健壮性/容错性
  • 效率与低存储量需求

算法的评价:

  • 时间复杂度   大O法
  • 空间复杂度    本身+额外辅助+输入

时间复杂度:

定义:一般情况下,算法中基本操作重复执行的时间是问题规模n的某个函数f(n),

算法的时间量度记作:T(n)=O(f(n))

语句的频度:该语句重复执行的次数。

存在关系:对数函数<幂函数<指数函数

绪论

空间复杂度:

  1. 存储算法本身所占用的空间
  2. 算法的输入/输出数据占用的空间
  3. 算法在运行过程中临时占用的辅助空间

 


算法和数据结构的关系:

数据计算机科学家沃斯提出:“算法+数据结构=程序”


抽象数据类型(ADT)

定义:是指基于一个逻辑类型的数据模型以及定义在该模型上的一组操作,每一个操作由它的输入和输出定义。

抽象数据类型的描述包括:给出抽象数据类型的名称数据的集合、数据之间的关系和操作的集合等方面的描述。

抽象数据类型的设计者根据这些描述给出操作的具体实现,抽象数据类型的使用者依据这些描述使用抽象数据类型。