[计算机基础]之数据结构、算法知识点

163 阅读2分钟
  1. 最小生成树
    1. prim、kruscal构建原则、核心思想
    2. P228
  2. 图的最短路径
    1. 单源:迪杰斯特拉 P234、核心思想、基本流程、用到的数组(cost[]、s[]、dist[])P231、时间复杂度O(n^2)
    2. 多源:Floyd 核心思想、构建过程
    3. 8.5
  3. 图的深度优先、广度优先
    1. 定义:8.3.1
    2. 深度优先、广度优先用队列
  4. 图的存储:
    1. 邻接矩阵
    2. 邻接表
  5. 二叉树
    1. 哈夫曼树:定义、作用
    2. 线索二叉树:保留在某种遍历情况下的节点的位置信息,不需要堆栈;线索二叉树的作用:找节点的前驱和后继
    3. 二叉排序树:定义、建立、插入、删除
    4. 二叉树的遍历算法:递归(前中后序)、非递归(用到了什么数据结构?)、层序
    5. 满二叉树、完全二叉树
  6. 排序
    1. 堆排序(重点):定义、过程、稳定性、时间复杂度;优先队列
    2. 快排序(重点):稳定性、时间复杂度 P302
    3. 冒泡、二路归并、插入、选择、希尔
  7. 查找
    1. 顺序查找
    2. 折半查找(重点)
  8. 索引
    1. 索引查找 vs 分块查找
    2. 多级索引
    3. 二叉树的多级索引(重点)的 优点
    4. 多分树索引
  9. B-tree B+tree
    1. B-:平衡的多路查找树
    2. B+:
  10. 散列
    1. 散列文件
    2. 散列冲突
    3. 装填因子
    4. 散列函数:除留余数法
    5. 处理冲突
  11. 线性表
  12. 递归和分治
    1. 步骤、定义
    2. 应用:分治——最大子数组、矩阵乘法
    3. 分治使用了递归
    4. 递归方程的求解
  13. 动态规划
    1. 动态规划和分支算法的区别:动态规划解决了分治算法耗时的问题
  14. 贪心算法
    1. 分数背包、0-1背包
    2. 动态规划和贪心的区别:分别解决什么样的问题?解决问题中的方法有何不同?