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