【数据结构一】逻辑结构,物理结构和数据运算 算法时间复杂度

前言:

【数据结构一】逻辑结构,物理结构和数据运算 算法时间复杂度
逻辑结构就是人为在思维上定义的结构,描述了数据元素之间逻辑上的关系。
【数据结构一】逻辑结构,物理结构和数据运算 算法时间复杂度
存储结构就是在磁盘或者内存上保存的结构,是数据结构在计算机中的表示,包括了数据元素的表示和关系的表示。是计算机语言实现的逻辑结构(一个逻辑结构可以有多种存储结构的实现)。主要有顺序存储,链式存储,索引存储和散列存储

顺序存储:

数组,

  • 特点:逻辑上相邻的元素,在物理存储位置上也相邻
  • 优点:1.随机存储 2. 每个元素占用最少的空间,没有额外开销
  • 缺点:1.只能使用相邻的一整块存储空间,易产生碎片
链式存储:

链表,单项

  • 特点:借助指向地址的指针来表示元素之间的逻辑关系,不一定逻辑相邻,物理上也相邻
  • 优点:1.无碎片,充分利用存储空间
  • 缺点:1.指针占用了额外空间,2.只能顺序存取
索引存储:

静态数组,b树

  • 特点:不仅存储信息,还建立附加的索引表,形式:(关键字,地址)
  • 优点:1.检索信息很快
  • 缺点:1.增加删除不便 2.索引表占用空间大
散列存储:

例如哈希表 Hash存储

  • 特点:根据关键字计算出存储地址,
  • 优点:1.检索,增加,删除节点都很快
  • 缺点:1.若散列函数不好,可能出现元素存储单元冲突,解决冲突会有更多的时间和空间开销。

算法:

时间复杂度:
【数据结构一】逻辑结构,物理结构和数据运算 算法时间复杂度
递归类型 的算法复杂度求解:
【算法导论-主定理】用主方法求解递归式 学练结合版