GESP2025年12月认证C++八级真题与解析(判断题8-10)


🧠 判断题第 8 题

1、📌 题目原文

快速排序在最坏情况下的时间复杂度为 O(n²)

可以通过随机化选择基准值(pivot)的方法完全避免退化

❌ 判断结果:错误(×)

⚠️ 这是一个非常经典、非常容易被"骗"的题!


2、📖 故事讲解:

🏃‍♂️ 快速排序小子的一天

快速排序(Quick Sort)是一个:

  • 🏃‍♂️ 跑得很快

  • 😎 很受欢迎

  • 📈 平均表现非常好

但他有也有致命弱点......


3、🧠 第一部分:为什么最坏是 O(n²)?

(1)🧩 快速排序的核心动作

1️⃣ 选一个 基准值 pivot

2️⃣ 比 pivot 小的放左边

3️⃣ 比 pivot 大的放右边


(2)❌ 最倒霉的情况来了

假设数组已经是:

cpp 复制代码
1 2 3 4 5 6

你每次都选:

cpp 复制代码
pivot = 第一个数

结果会怎样?

cpp 复制代码
左边:空
右边:n-1 个

(3)👉 每一层只少一个数

👉 一共要分 n 层

📉 时间复杂度就变成:

cpp 复制代码
O(n²)

4、🧠 第二部分:随机 pivot 能"完全避免"吗?

(1)🎲 随机选 pivot 是什么?

不是总选第一个,而是:

  • 随机挑一个

  • 让"倒霉情况"不常发生


(2)⚠️ 关键点来了

随机 ≠ 不可能

随机只是:

  • 降低概率

  • 不能保证 100% 不退化

(3)📌 所以题目里说:

"完全避免退化"

这是 错的


5、🧠 记忆口诀

快排会退化,随机可以降概率,但不是百分百



🧠 判断题第 9 题

1、📌 题目原文

在 C++ 语言中,一个类可以拥有多个构造函数,也可以拥有多个析构函数。


❌ 判断结果:错误(×)


2、📖 故事讲解:

🏠 类 = 房子

在 C++ 王国里:

  • 就像一栋房子

  • 构造函数 = 进门方式

  • 析构函数 = 离开时清理房子


3、🧠 第一部分:构造函数(可以多个)

(1)🚪 为什么可以有多个构造函数?

因为进门方式可以不同:

cpp 复制代码
class Cat {
public:
    Cat() {}              // 空手进门
    Cat(int age) {}       // 带年龄进门
    Cat(int age, int w) {}// 带年龄和体重
};

(2)👉 这叫 函数重载

完全合法


4、🧠 第二部分:析构函数(只能一个)

(1)🚪🚫 为什么不能多个?

析构函数的名字是固定的:

cpp 复制代码
~Cat()
  • 名字不能改

  • 没参数

  • 没返回值


(2)👉 无法区分多个

所以:

📌 一个类 只能有一个析构函数


5、🧠 记忆口诀

构造函数能重载,

所以可以有多个,

析构函数是固定,

一个类只能有一个。



🧠 判断题第 10 题

1、📌 题目原文

求两个序列的最长公共子序列(LCS)时,

使用滚动数组优化空间后,仍然可以还原出具体的 LCS 序列


❌ 判断结果:错误(×)

⚠️ 这是 算法理解题,很重要!


2、📖 故事讲解:

🧬 找"共同的秘密密码"

两个字符串:

cpp 复制代码
A = ABCBDAB
B = BDCABA

LCS 是:

cpp 复制代码
BCBA 或 BDAB

3、🧠 普通 LCS(能还原)

我们用一个二维表:

cpp 复制代码
dp[i][j]

每一步都记录:

  • 从哪来

  • 是上?左?还是左上?

📌 路径在,答案就能回溯


4、🧠 第二部分:滚动数组做了什么?

(1)🧩 滚动数组的目的

省内存!

原来是:

cpp 复制代码
n × m

现在只保留:

cpp 复制代码
2 行

(2)❌ 问题来了

  • 旧的行被覆盖了

  • "走过的路"被擦掉了

👉 你只知道 长度

👉 不知道 具体选了哪些字符


5、🧠 结论

方法 能否还原 LCS
普通 DP ✅ 可以
滚动数组 ❌ 不行(单独用)

6、🧠 记忆口诀

普通LCS,

路径可还原,

滚动省空间,

路径全不见。


相关推荐
橘颂TA31 分钟前
【测试】高效浏览器操作:基础功能与优化设置大全
c++·功能测试·职场和发展·测试·web测试
一只小小的芙厨34 分钟前
寒假集训笔记·以点为对象的树形DP
c++·算法
艾莉丝努力练剑1 小时前
hixl vs NCCL:昇腾生态通信库的独特优势分析
运维·c++·人工智能·cann
我在人间贩卖青春1 小时前
C++之new和delete
c++·delete·new
Trouvaille ~1 小时前
TCP Socket编程实战(三):线程池优化与TCP编程最佳实践
linux·运维·服务器·网络·c++·网络协议·tcp/ip
June`1 小时前
高并发网络框架:Reactor模式深度解析
linux·服务器·c++
小镇敲码人1 小时前
剖析CANN框架中Samples仓库:从示例到实战的AI开发指南
c++·人工智能·python·华为·acl·cann
刘琦沛在进步2 小时前
【C / C++】引用和函数重载的介绍
c语言·开发语言·c++
我在人间贩卖青春3 小时前
C++之this指针
c++·this
云姜.3 小时前
java多态
java·开发语言·c++