本文主要介绍数据结构中的一些基本知识,例如数据结构得划分、数据类型、算法等。 接下来的博客将详细介绍数据结构中的链表、栈和队列、树、查找、排序等算法。
数据结构
- 逻辑结构(算法设计)
- 线性结构:线性表、栈、队列(一对一)
- 非线性结构:树、图、集合(一对多、多对多)
- 存储结构(算法实现) 物理结构
- 数据的运算
数据元素是数据的基本单位。
数据类型
- 原子类型: (值不可再分)
- 结构类型: (值可在分)
- 抽象数据类型: (数据对象、数据关系、基本操作等)
线性结构
- 一般线性表
- 受限线性表 (栈、队列、串)
- 线性表推广 (数组、广义表)
有序表仅描述元素间的逻辑关系,属于逻辑结构。
二叉树和二叉排序树逻辑结构和存储结构相同,但数据运算不同。
算法
- 特性:
- 有穷性
- 确定性
- 可行性
- 输入(随便)
- 输出(至少一个)
- 效率:
- 时间复杂度:一般考虑最坏时间复杂度
- 空间复杂度:原地工作指算法所需的辅助空间为常量,O(1)
大小关系:
O(1)<O(log2n)<O(n)<O(nlog2n)<O(n2)<O(n3)<O(2n)<O(n!)<O(nn)
整体内容如下: