数据结构系列1 数据结构与算法

Chapter1 绪论

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

面向过程:程序设计 = 数据结构 + 算法数组

数据结构的分类

  • 逻辑结构:数据对象中数据元素之间的关系。
    • 集合结构:数据元素除了同属于一个集合以外,它们之间没有其它关系。
    • 线性结构:线性结构中的元素之间是一对一的关系。
    • 树形结构:数据元素之间存在一种一对多的层次关系。
    • 图形结构:数据元素之间存在多对多的关系。
  • 物理结构(存储结构):数据的逻辑结构在计算机中的存储形式。存储器主要是针对内存而言的,外部存储器中的数据组织一般用文件结构来描述。
    • 顺序存储结构:把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的。
    • 连式存储结构:把数据结构存储在任意的存储单元里,这组存储单元能够是连续的,也能够是不连续的。

抽象数据类型

  • C语言中,按照取值的不一样,数据类型能够分为两类:
    • 原子类型:不能够再分节的基本类型,包括整型、实型、字符型等。
    • 结构类型:由若干个类型组合而成,是能够再分解的,例如,整型数组是由若干整型数据组成的。

抽象是值抽取出事物具备的广泛性的本质。 对已有的数据类型进行抽象,就有了抽象数据类型。 抽象数据类型(Abstract Data Type)是指一个数学模型及定义在该模型上的一组操做。bash

  • 描述抽象数据类型的标准格式:
ADT 抽象数据类型
Data
    数据元素之间逻辑关系的定义
Operation
    操做一
        初始条件
        操做结果描述
    操做二
        ...
    操做n
        ...
endADT
复制代码

Chapter2 算法

算法的特性

  • 算法具备五个基本特性:
    • 输入输出:算法有零个或多个输入,一个或多个输出。
    • 有穷性:算法执行有限的步骤以后,自动结束而不会出现无限循环,而且每个步骤在可接受的时间之类完成。
    • 肯定性:算法的每一步都有肯定的含义,不会出现二义性。相同的输入只会有惟一的输出结果。
    • 可行性:每一步都可以经过执行有限的次数完成。

复杂度

  • 算法的时间复杂度:
    • 分析程序的运行时间时,最重要的是把程序当作是独立于程序设计语言的算法或者一系列步骤。
    • 判断一个算法的效率时,函数中的常数项和其余次要项经常能够忽略,而更应该关注主项 (最高阶项)的阶数。
  • 算法的空间复杂度:

参考资料:《大话数据结构》数据结构

相关文章
相关标签/搜索