mirror of
https://github.com/142vip/408CSFamily.git
synced 2026-05-11 18:46:25 +08:00
feat(docs):新增文档
This commit is contained in:
46
docs/DS/linear_table/8.selection_of_storage_structure.md
Normal file
46
docs/DS/linear_table/8.selection_of_storage_structure.md
Normal file
@@ -0,0 +1,46 @@
|
||||
|
||||
<!--
|
||||
* @Description:
|
||||
* @Version: Beta1.0
|
||||
* @Author: 【B站&公众号】Rong姐姐好可爱
|
||||
* @Date: 2021-03-07 22:00:36
|
||||
* @LastEditors: 【B站&公众号】Rong姐姐好可爱
|
||||
* @LastEditTime: 2022-04-24 00:18:14
|
||||
-->
|
||||
|
||||
|
||||
|
||||
|
||||
## 存储结构的选取
|
||||
|
||||
|
||||
|
||||
### 基于存储的考虑
|
||||
|
||||
- 对线性表的长度和存储规模难以估计时,不宜采用顺序表存储
|
||||
- 链表不用事先估计存储规模,但存储密度较低
|
||||
- 链式存储结构的存储密度小于1,不要求连续的存储空间
|
||||
|
||||
|
||||
|
||||
### 基于运算的考虑
|
||||
|
||||
- 顺序表支持随机存取,按序号查找顺序表的时间复杂度为O(1);
|
||||
- 链表不支持随机存取,按序号查找链表的时间复杂度为O(n);
|
||||
- 顺序表的插入、删除操作,平均需要移动表中一半的元素,当表的数据量较大时,这种情况需要重点考虑的。
|
||||
- 链表的插入、删除操作,也是需要找插入位置(前驱结点、后继结点),主要的操作还是比较操作,相对较好;
|
||||
|
||||
|
||||
|
||||
|
||||
### 基于环境的考虑
|
||||
|
||||
- 顺序表容易实现,任何高级语言中都有数组类型;
|
||||
- 链表操作是基于指针的,指针移动,相对复杂;
|
||||
|
||||
|
||||
|
||||
综上比较
|
||||
|
||||
- 通常比较稳定的线性表选择顺序存储;
|
||||
- 频繁进行插入、删除操作的线性表,应该选择链式存储,动态性较强
|
||||
Reference in New Issue
Block a user