软件设计师:数据结构与算法基础
本文最后更新于:2 个月前
课程地址
https://www.bilibili.com/video/BV1Eb411W7kc?p=80
思维导图
数据结构与算法基础(非常重要)
- 数组与矩阵
- 线性表(必考)
- 广义表
- 树与二叉树(必考)
- 图
- 排序与查找(重要)
- 算法基础及常见的算法
数组与矩阵
数组
稀疏矩阵
解题技巧:代入法(A0,0, A1,1)
数据结构的定义
线性表(必考)
广义表
长度:最外层的表包含的元素个数
深度:嵌套的次数,包含括号的层数
表头:第一个表元素,head()操作
表尾:除第一个元素外的其他所有元素,tail()操作
数与二叉树(必考)
结点的度:拥有的孩子结点数
树的度:所有结点的度的最大值
叶子结点:没有孩子结点的结点
分支结点
内部结点:非叶子结点,也非根结点
父结点、子结点:相对概念
兄弟结点:平级结点,不一定属于同一个父结点
层次
完全二叉树:除了最下层,其余是完整的;且最下一层从左到右依次排列,只缺最右边的
孩子结点->左子树结点
兄弟节点->右孩子结点
简化->连线法:连接兄弟结点,孩子结点只保留第一个,变形
左孩子的值小于根,右孩子的值大于根
最优二叉树(哈夫曼树)
基本概念:
树的路径长度:从树根到树中每一结点的路径长度之和
权:叶子结点的数据信息
带权路径长度:结点与根之间的路径长度与该结点上权的乘积
树的带权路径长度(树的代价):树中所有叶子结点的带权路径长度的和
哈夫曼树:树的带权路径长度(树的代价)最小
构造哈夫曼树:依次找权值最小的两个
图
基本概念
邻接矩阵
邻接表
图的遍历
拓扑排序(选择题)
图的最小生成树
从一节点开始,选择距离最短的结点(不能选会构成环路的节点)
选择不构成环路的最小边
算法基础
算法的特性
有穷性:执行有穷步之后结束
确定性:算法中的每一条指令都必须有确切的含义,不能含糊不清
输入:>= 0
输出:>= 1
有效性:算法的每个步骤都能有效执行并能得到正确的结果。例如除数为0违反有效性
算法的复杂度
时间复杂度(必考,多在下午)
查找算法
散列冲突的解决:线性探测法、伪随机数法
排序算法(必考)
初建堆:按完全二叉树排列,从最后一个非叶子结点开始进行多次调整
堆重建:取出堆顶元素,将最后一个结点作为新堆顶再次进行多次调整
排序算法的时间复杂度、空间复杂度及稳定性(常考)
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!