🧠 判断题第 1 题
1、题目原文
若一项任务可用两种互斥方案完成:
方案 A 有a 种做法,方案 B 有b 种做法,
则总做法数为a + b。
✅ 判断结果:正确(√)
2、📖 故事讲解:
(1)🏫 小明上学的两条路
小明每天早上要去学校,他只能选择一条路去学校(不能同时走两条)。
🛣️A 路(公园路)
有3 种不同的走法
(比如:走左边小道 / 中间大路 / 右边小道)🛣️B 路(商店街)
有2 种不同的走法
(比如:走甜品店前 / 走文具店前)
(2)❓ 问题
请问:
👉小明一共有多少种不同的上学走法?
(3)🧠 我们一步一步想
第一步:看清楚“只能选一个” ⚠️
题目说得很清楚:
只能走一条路
也就是说:
走 A 路 → ❌ 不能走 B 路
走 B 路 → ❌ 不能走 A 路
这就叫做:
🌟互斥
第二步:分别数一数
如果走A 路
👉 有3 种走法如果走B 路
👉 有2 种走法
第三步:合在一起数(加法原理)
因为:
要么选 A
要么选 B
不能同时选
所以我们只需要把“所有可能”加起来:
3 + 2 = 5(4)✅ 正确答案
👉一共有 5 种不同的上学走法
3、🎨 图像化理解
你可以画成这样:
上学方式 ├── A 路 │ ├── A1 │ ├── A2 │ └── A3 └── B 路 ├── B1 └── B2👉 把所有叶子数一数:5 个
4、🧠 把原理说成一句“魔法口诀”
🎯“互斥”选一个,只能用加法
🎯如果能同时选,就要用乘法
5、🧩 再给一个“超短判断题”
(1)判断题
小红买冰淇淋:
🍦 蛋筒来装,有 4 种口味
🍧 玻璃杯来装,有 3 种口味
她只能买一种(蛋筒或玻璃杯装)
问:一共有多少种买法?
(2)“互斥”选一个,只能用加法
👉4 + 3 = 7 种
6、🏁 记忆口诀
| 看情况 | 用什么 |
|---|---|
| 只能选一个方案 | ✅ 加法 |
| 可以同时选多个 | ❌ 不是加法 |
🧠 判断题第 2 题
1、题目原文
在 C++ 语言中,引用一旦被初始化,就不能再改为引用另一个变量。
✅ 判断结果:正确(√)
2、📖 故事讲解:
(1)🧍♂️ 名字 和“外号”的故事
int a = 10; int &b = a;现在发生了什么?
a是一个小朋友名字b是 名字为a 小朋友的外号👉 他们是同一个人
(2)🔍 接下来发生什么?
b = 20;等价于:
a = 20;✔️ 因为b 就是 a
(3)❌ 那能不能这样?
int c = 30; b = c; // ❌ 不是改引用对象!⚠️ 这一步不是让b改成引用c
而是:
把 c 的值赋给 a(4)🚫 为什么不能“改引用对象”?
因为:
📌引用 = 一次认主,终身不换
引用必须初始化
初始化之后
👉不能再指向别人
(5)🧠 和指针的区别
| 特点 | 引用 | 指针 |
|---|---|---|
| 能不能改指向 | ❌ 不行 | ✅ 可以 |
| 用起来 | 简单 | 稍复杂 |
3🧠 记忆口诀
引用一认主,永远不换人
🧠 判断题第 3 题
1、题目原文
快速排序和归并排序的平均时间复杂度都是O(n log n),
但快速排序是不稳定的,归并排序是稳定的排序算法。
✅ 判断结果:正确(√)
2、我们从不同层次讲一讲 👇
(1)第一层:什么是排序?
📦 故事:整理奖品盒
有一排盒子:
🎁5 🎁3 🎁8 🎁3排序后(从小到大):
🎁3 🎁3 🎁5 🎁8(2)第二层:什么是“稳定”?
🧸 带编号的小熊
假设我们有:
(3号红熊) (5号蓝熊) (3号绿熊)排序时只按数字大小
✅ 稳定排序(归并排序)
排序后:
(3号红熊) (3号绿熊) (5号蓝熊)👉两个 3 的相对顺序没变
❌ 不稳定排序(快速排序)
可能变成:
(3号绿熊) (3号红熊) (5号蓝熊)👉 数字对了
👉 但“谁在前谁在后”变了
(3)第三层:算法角度讲解(展开)
🌀 快速排序(Quick Sort)
思想:
👉 选一个“老大”(pivot)
👉 小的站左边,大的站右边特点:
🚀 很快
😅 会交换元素
❌ 可能打乱相同元素顺序
📌 所以:不稳定
🧩 归并排序(Merge Sort)
思想:
👉 不断分成两半
👉 排好再“合并”合并时:
如果两个数一样
👉先拿左边的
📌 所以:稳定
(4)第四层:时间复杂度 O(n log n)
📈 为什么都是 O(n log n)?
每次都在“对半分” → log n 层
每一层都要处理 n 个元素
👉n × log n
3、🧠 记忆口诀
快排虽快,但爱换位
归并很稳,特守规矩