大话数据结构-1 基础

逻辑结构与物理结构

逻辑结构

指数据对象中数据元素之间的相互关系。分为四种:

  1. 集合结构:数据元素除了同一属性属于一个集合外,他们之间没有其他关系。
  2. 线性结构:数据元素之间是一对一的关系。
  3. 树形结构:数据元素之间存在一对多的层次关系。
  4. 图形结构:数据元素是多对多的关系。

逻辑结构是针对具体问题的,是为了解决某个问题,在对问题理解的基础上,选择一个合适的数据结构表示数据元素之间的逻辑关系。

物理结构

指数据的逻辑结构在计算机中的存储形式。

数据元素的存储结构形式有两种:

  1. 顺序存储结构:是把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的。
  2. 链式存储结构:把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的。

抽象数据类型

在C语言中,按照取值的不同,数据类型分类两类:

  1. 原子类型:是不可以再分解的基础类型,包括整型、字符型等。
  2. 结构类型:由若干个类型组合而成,是可以再分解的。例如,整型数组是由若干整型数据组成的。

抽象数据类型:指一个数学模型及定义在该模型上的一组操作。

算法

算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。

算法时间复杂度:

  1. O(1):常数阶
  2. O(n):线性阶
  3. O(n^2):平方阶
  4. O(logn):对数阶
  5. O(nlogn):nlogn阶
  6. O(n^3):立方阶
  7. O(2^n):指数阶

从小到大的顺序为:

常数阶 < 对数阶 < 线性阶 < nlogn阶 < 平方阶 < 立方阶 < 指数阶

推导大O阶方法

  1. 用常数1取代运行时间中的所有加法常数
  2. 在修改后的运行次数函数中,只保留最高阶项
  3. 如果最高阶项存在且不是1,则去除与这个项目相乘的常数

得到的结果就是大O阶

你可能感兴趣的:(大话数据结构-1 基础)