mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4
909 字
3 分钟
软考中级软件设计师 · 知识点速查表
2026-04-22

软考中级软件设计师 · 知识点速查表#

整理时间:2026-04-22 来源:错题本精选


第一部分:数据结构#

1.1 图#

有向完全图 vs 无向完全图#

类型边数公式说明
无向完全图n(n-1)/2每对顶点之间1条边
有向完全图n(n-1)每对顶点之间2条边(双向)

记忆口诀: 有向翻一番


邻接矩阵#

图类型非零元素个数空间复杂度
有向图EO(n²)
无向图2E(对称)O(n²)

最小生成树算法对比#

PrimKruskal
算法类型贪心贪心
思想选最近顶点选最短边
适合图类型稠密图稀疏图
时间复杂度O(n²)O(eloge)
实现方式顶点集合边集合

记忆口诀:

Prim:选点(就近)→ 适合密图
Kruskal:选边(最短)→ 适合疏图
判断环:并查集,同集合则环

1.2 树#

树中结点关系公式#

n(总结点数)= 分支数 + 1
分支数 = Σ 各结点度数之和
树的总结点数 = 1 + Σ(各度级结点 × 该结点度数)

解题步骤:

  1. 设叶子结点(度为0)个数为 n₀
  2. 结点总数 n = n₀ + 各度级结点之和
  3. 分支数 = Σ(各度级结点 × 该结点度数)
  4. 利用 n = 分支数 + 1 求解

1.3 数组#

二维数组地址计算#

行优先: LOC(i,j) = LOC(0,0) + (i×m + j) × L 列优先: LOC(i,j) = LOC(0,0) + (j×n + i) × L

符号含义
LOC(0,0)基地址
i, j行、列下标(从0开始)
m列数(行优先时)
n行数(列优先时)
L每个元素占用的存储单元数

记忆口诀: 行优先:行×列数 + 列;列优先:列×行数 + 行


1.4 栈#

表达式求值栈深度#

核心方法: 中缀表达式 → 后缀表达式 → 模拟求值

后缀表达式求值步骤:

  1. 操作数入栈
  2. 遇到运算符弹出两个操作数,计算结果后入栈
  3. 栈的最大深度即为所需容量

快速判断技巧: 第一个运算符前有多少个操作数,栈容量至少就是多少


第二部分:算法#

2.1 查找算法#

折半查找(二分查找)ASL#

判定树构造:

  • 根节点 = 第1次比较的元素
  • 左右子树 = 左右半部分,第2次比较的元素
  • 以此类推…

ASL 计算公式:

成功查找 ASL = (各层结点数 × 该层层数) / 元素个数
失败查找 ASL = (各外部结点比较次数之和) / 失败位置数
(失败位置数 = n + 1)

分块查找 ASL#

步骤:

  1. 在索引表中查找,确定元素在哪一块
  2. 在块内查找,找到目标元素

ASL 公式:

索引表查找块内查找ASL
顺序查找顺序查找(m+1)/2 + (n/m+1)/2
折半查找折半查找log₂(m+1) + log₂(n/m+1)

n = 总元素数,m = 块数

记忆口诀: 分块查找 ASL = 索引表查找 + 块内查找


2.2 排序算法#

时间复杂度对比#

排序算法最好平均最坏空间稳定性
直接插入O(n)O(n²)O(n²)O(1)✅ 稳定
希尔排序O(n)O(n^1.3)O(n²)O(1)❌ 不稳定
简单选择O(n²)O(n²)O(n²)O(1)❌ 不稳定
冒泡排序O(n)O(n²)O(n²)O(1)✅ 稳定
快速排序O(nlogn)O(nlogn)O(n²)O(logn)❌ 不稳定
堆排序O(nlogn)O(nlogn)O(nlogn)O(1)❌ 不稳定
归并排序O(nlogn)O(nlogn)O(nlogn)O(n)✅ 稳定

记忆要点#

  • 稳定排序: 直接插入、冒泡、归并
  • 平均时间最优: 快速排序 O(nlogn)
  • 空间复杂度最优: 堆排序 O(1)
  • 最坏情况最优: 堆排序、归并排序 O(nlogn)

2.3 算法设计策略#

分治法#

三步骤: 分 → 治 → 合

分 → 划分问题为子问题
治 → 递归求解子问题
合 → 合并子问题的解

典型应用: 最近点对问题、归并排序、快速排序

注意: 分治法在合并阶段只需检查有限范围,不是全部枚举


第三部分:高频考点速记#

必背公式汇总#

无向完全图边数:n(n-1)/2
有向完全图边数:n(n-1)
树总结点数:分支数 + 1
二叉树性质:n₀ = n₂ + 1(度为0的结点数 = 度为2的结点数 + 1)
数组行优先:LOC(i,j) = LOC(0,0) + (i×m + j) × L
数组列优先:LOC(i,j) = LOC(0,0) + (j×n + i) × L
折半查找 ASL(成功):(各层结点数 × 层数) / 元素个数
折半查找 ASL(失败):外部结点比较次数之和 / (n+1)
分块查找 ASL:(m+1)/2 + (n/m+1)/2

(持续更新中)

分享

如果这篇文章对你有帮助,欢迎分享给更多人!

软考中级软件设计师 · 知识点速查表
https://www.rumin.top/posts/知识点速查表_软考软件设计师/
作者
Rumin
发布于
2026-04-22
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

目录

封面
Sample Song
Sample Artist
封面
Sample Song
Sample Artist
0:00 / 0:00