01 稀疏数组 时间复杂度 空间复杂度

目录

数据结构包括: 线性结构和非线性结构

稀疏数组

队列

数据结构

数据结构的分类

算法

算法分析

时间复杂度

空间复杂度


  1. 数据结构包括: 线性结构和非线性结构

    1. 线性结构
      1. 特点: 数据元素之间存在一对一的线性关系
    2. 非线性结构
      1. 例如:
        1. 二维数组、多维数组、树、图
  2. 稀疏数组

    1. 01 稀疏数组 时间复杂度 空间复杂度_第1张图片
  3. 队列

    1. 数组和链表说的是数据的存储方式, 队列、栈、二叉树、图说的是数据的组织方式.
    2. 用数组实现队列
      1. 队尾队首指针的初始值都是-1
  4. 数据结构

    1. 概念
    2. 数据结构的分类

      1. 逻辑结构
        1. 集合结构
        2. 线性结构
        3. 树形结构
        4. 图形结构
      2. 物理结构
        1. 顺序存储结构
          1. 可以根据索引值来取值
        2. 链式存储结构
          1. 增删改速度快 
  5. 算法

    1. 概念
    2. 算法分析

      1. 分析算法运行时间最重要的是把核心操作次数输入数据规模关联起来
    3. 时间复杂度

      1. 对数阶一般都忽略底数
      2. 计算时间复杂度的关键是, 找出输入规模(n)和关键操作的执行次数(x)之间的数学关系
      3. 常用的时间复杂度总结
        1. 01 稀疏数组 时间复杂度 空间复杂度_第2张图片
        2. 尽可能追求红线以上的时间复杂度
      4. 最坏情况和最好情况
        1. 一般只考虑最坏情况下的时间复杂度
          1. 因为要保证最坏情况下也能够正常提供服务
    4. 空间复杂度

      1. 一般我们并不会专门去优化空间复杂度, 因为我们是做服务器端java开发的, 而服务器的内存一般都特别大, 没必要关心
        1. 但是如果你是做嵌入式开发的就不一样了, 以为微型计算机(单片机)的内存都比较小
      2. 一般情况下只分析时间复杂度

 

 

 

你可能感兴趣的:(数据结构与算法)