数据结构预备常识

考虑的问题:

  1. 为什么要引入这种数据结构?
  2. 逻辑结构?
  3. 存储结构?
  4. 时间复杂度?
  5. 空间复杂度?

应用

  • 指代的就是这种数据结构产生的背景

逻辑结构

  • 算法设计取决于逻辑结构
  • 按照逻辑结构进行划分,常见的数结构可以分为 线性结构非线性结构
    • 线性结构 如线性表
    • 非线性结构如 集合(数据集合)、树(一对多)、图(多对多)
  • 另外说明:树是一种特殊的图

存储结构

  • 算法的实现依赖于所采用的存储结构
  • 常见的存储结构有
    1. 顺序存储: 优点:随机存取; 缺点:产生碎片,不易扩容
    2. 链式存储: 优点:充分利用存储单元; 缺点:存储指针消耗额外存储空间
    3. 索引存储: 优点:检索速度极快; 缺点:消耗存储空间存储索引表
    4. 散列存储: 优点:检索、增减数据速度快; 缺点:散列函数可能存在冲突,解决冲突将消耗额外的时间和空间。

时间复杂度

  • 理论:
    1. T(n): 算法中所有语句的频度之和,为算法规模 n 的一个函数
    2. O(n): 为了减少无关紧要的语句对算法时间复杂度的分析,取程序最深层循环内的语句作为时间复杂度分析,根据极限理论,当 n -> 正无穷时,和 T(n) 同一个数量级;

空间复杂度

  1. 在存储空间白菜价格的年代,请忽略空间复杂度。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值