【数据结构一】逻辑结构,物理结构和数据运算 算法时间复杂度
前言:
逻辑结构
就是人为在思维上定义的结构,描述了数据元素之间逻辑上的关系。存储结构
就是在磁盘或者内存上保存的结构,是数据结构在计算机中的表示,包括了数据元素的表示和关系的表示。是计算机语言实现的逻辑结构
(一个逻辑结构可以有多种存储结构的实现)。主要有顺序存储,链式存储,索引存储和散列存储。
顺序存储:
数组,
- 特点:逻辑上相邻的元素,在物理存储位置上也相邻
- 优点:1.随机存储 2. 每个元素占用最少的空间,没有额外开销
- 缺点:1.只能使用相邻的一整块存储空间,易产生碎片
链式存储:
链表,单项
- 特点:借助指向地址的指针来表示元素之间的逻辑关系,不一定逻辑相邻,物理上也相邻
- 优点:1.无碎片,充分利用存储空间
- 缺点:1.指针占用了额外空间,2.只能顺序存取
索引存储:
静态数组,b树
- 特点:不仅存储信息,还建立附加的索引表,形式:(关键字,地址)
- 优点:1.检索信息很快
- 缺点:1.增加删除不便 2.索引表占用空间大
散列存储:
例如哈希表 Hash存储
- 特点:根据关键字计算出存储地址,
- 优点:1.检索,增加,删除节点都很快
- 缺点:1.若散列函数不好,可能出现元素存储单元冲突,解决冲突会有更多的时间和空间开销。
算法:
时间复杂度:递归类型
的算法复杂度求解:
【算法导论-主定理】用主方法求解递归式 学练结合版