数据结构绪论
-
基本概念和术语
- 数据元素: 组成数据的基本单位、有一定意义的基本单位。例如,人类中,数据元素就是人;畜禽类中,牛、马、🐏等就是数据元素
- 数据项: 一个元素可以由若干个数据项组成。例如,人的耳朵、眼睛、嘴巴等就是数据项。它是不可分割的最小单位
- 数据对象: 性质相同(相同数量和好相同类型)的数据元素的集合,是数据的子集。例如,人都有姓名、生日、性别等相同的数据项,此时人就是数据对象。
-
数据结构: 逻辑结构、存储结构、数据的运算
- 逻辑结构: 线性结构、非线性结构
# 线性结构:线性表;栈(特殊线性表);队列(特殊线性表);字符串、数组、广义表
# 非线性结构:树形结构;图形结构 - 存储结构: 顺序存储、链式存储
- 顺序存储: 把数据元素放在地址来连续的存储单元里,数据的逻辑关系和物理关系是一致的。例如,排队占位,都按顺序站好,每个人都占一小段空间。不能插队。
- 链式存储: 数据元素存放在任意的存储单元里,存储单元额可以是不连续的。例如,银行、医院的排队系统,只关心有没有被叫到,而不关心排号的人在哪里。
- 数据的运算: 检索、排序、插入、删除、修改等
- 逻辑结构: 线性结构、非线性结构
算法与算法分析
- 算法时间复杂度: 算法中基本语句重复执行的次数是问题规模n的某个函数f(n),算法的时间量度记作:T(n)=O(f(n))
- 基本语句: 执行次数最多的语句
- n越大算法的执行时间越长
- 一般情况下,不必计算所有操作数的执行次数,而只考虑算法中基本操作执行的次数,它是问题规模n的某个函数,用T(n)表示
- 时间复杂度是由嵌套最深层语句的频度决定的
- 复杂度排序(低到高):常数阶–对数阶–线性阶–线性对数阶–平方阶–立方阶–…--K次方阶–指数阶
- 算法空间复杂度: 算法所需存储空间的度量
* 算法占据空间:输入、输出、指令、变量等