《数据结构(C语言版)》严蔚敏---第一章绪论

数据结构

数据结构主要研究非数值计算问题,数据结构是一门研究非数值计算程序设计中的操作对象,以及这些对象之间关系和操作的学科。
数据结构是相互之间存在一种或多种特定关系的数据元素的集合。
数据结构包括逻辑结构和存储结构两个层次。

逻辑结构的四种基本关系:

  • 集合结构
  • 线性结构
  • 树结构
  • 图结构

线性结构:线性表,栈和队列,字符串,数组,广义表。
非线性结构:树,二叉树,有向图,无向图。

存储结构:顺序存储结构(数组)和链式存储结构(指针)。

数据类型和抽象数据类型

数据类型:是一个值的集合和定义在这个值集上的一组操作的总称。
抽象数据类型:一般指由用户定义的,表示应用问题的数学模型,以及定义在这个模型上的一组操作的总称,具体包括三部分:数据对象,数据对象上关系的集合以及数据对象的基本操作的集合。

算法和算法分析

算法具有五个特性:有穷性,确定性,可行性,输入和输出。
一个算法的优劣应该从以下四个方面来评价:正确性,可读性,健壮性和高效性。

衡量算法效率的方法:事后统计法和事前估计法。
影响算法时间代价的主要因素有:问题规模,待处理数据的状态。
语句频度(Frequency Count):一条语句重复执行的次数。
基本语句:算法中重复执行次数和算法的执行时间成正比的语句。

如果算法的执行时间不随问题规模n的增加而增长,算法中语句频度就是某个常数,即使这个常数再大,算法的时间复杂度都是O(1)。

时间复杂度递增排序:常量阶,对数阶,线性阶,线性对数阶,平方阶,立方阶,k次方阶,指数阶。

猜你喜欢

转载自www.cnblogs.com/huerxiong/p/10161591.html