GESP2025年3月认证C++五级( 第一部分选择题(9-15))


🏆 第9题:不稳定排序是谁?

✅ 答案:A(选择排序)


1、🧠 故事理解

小勇士来到"排序学院",每个排序都在排队。

👦 有两个同学:

  • 小红(成绩 90)

  • 小蓝(成绩 90)

👉 稳定排序:排完之后,顺序不变

👉 不稳定排序:可能交换,顺序乱掉


2、🧩 核心思维

👉 判断稳定性只问一句:

"排序过程中,会不会跨位置交换?"


3、🔥 快速判断口诀

排序 是否稳定
冒泡
插入
归并
选择 ❌(会乱换)

👉 选择排序每次"直接换最小值",容易把相同元素顺序打乱



🏆 第10题:快速排序分区

✅ 答案:B


1、🧠 故事理解

快速排序像"分队游戏":

👉 选一个队长(pivot)

👉 比他小的站左边

👉 比他大的站右边


2、🧩 思维模型

循环过程中要维护:

复制代码
[小的区域] [未处理] [大的区域]

3、🧠 正确操作

复制代码
if (arr[j] < pivot) {
    i++;
    swap(arr[i], arr[j]);
}

👉 先扩大"小区间",再交换


4、🚨 常见错误

❌ 顺序写反

❌ 比较符号错(> 或 ==)


5、🎯 记忆口诀

👉 "小的往前放"



🏆 第11题:二分查找次数

✅ 答案:C(7次)

1、🧠 故事理解

小勇士在猜一个1~100的数字,每次都对半砍:

复制代码
100 → 50 → 25 → 13 → 7 → 4 → 2 → 1

最多7次!


2、🧩 思维模型

👉 二分查找次数 ≈

复制代码
log₂(n)

3、🎯 快速估算技巧

n 次数
100 ≈7
1000 ≈10

👉 记住:2⁷=128



🏆 第12题:二分查找mid写法

✅ 答案:A


1、🧠 故事理解

小勇士算中点:

复制代码
mid = (left + right) / 2

看起来没问题......

💥 但如果数很大,会溢出!


2、🧩 正确思维

👉 安全写法:

复制代码
mid = left + (right - left) / 2

3、🎯 核心点

不是为了好看,而是:

防止 left + right 爆掉


4、🚨 考试策略

看到 mid:

👉 优先选"防溢出写法"



🏆 第13题:贪心算法本质

✅ 答案:A


1、🧠 故事理解

小勇士买东西:

👉 每次都选"当前最好的"

这就是贪心!


2、🧩 思维模型

👉 贪心 =

复制代码
每一步都选当前最优

3、🚨 关键区别

算法 特点
贪心 局部最优
动态规划 全局最优

4、❗ 易错点

❌ "一定得到最优解" → 错

👉 有些问题贪心会错



🏆 第14题:分治求最大值

✅ 答案:D


1、🧠 故事理解

小勇士找最大值:

👉 把数组一分为二

👉 左边找最大

👉 右边找最大

👉 比一下


2、🧩 分治三步(必须掌握🔥)

复制代码
1. 分(拆)
2. 治(递归)
3. 合(合并结果)

3、🧠 正确逻辑

复制代码
return max(leftMax, rightMax);

4、🚨 常见错误

❌ return left + right

❌ return left * right

👉 这不是"求最大",而是乱算



🏆 第15题:高精度乘法进位

✅ 答案:B


1、🧠 故事理解

小勇士在做"大数乘法":

每一位要处理:

👉 原来的值 + 进位


2、🧩 思维模型(关键🔥)

复制代码
temp = 当前值 + 进位

3、🧠 正确代码

复制代码
int temp = c[k] + carry;
c[k] = temp % 10;
carry = temp / 10;

4、🚨 易错点

错误 原因
只用 ck 忘记进位
减 carry 没意义
乘 carry 完全错误

🎯知识点总结:


🧠 ① 排序理解

👉 稳定 vs 不稳定(交换方式)


🧠 ② 快速排序思想

👉 分区 + 不变量


🧠 ③ 二分查找

👉 log级别 + 防溢出写法


🧠 ④ 算法思想

👉 贪心 vs 分治


🧠 ⑤ 高精度计算

👉 每一位 = 当前值 + 进位


相关推荐
玖玥拾25 分钟前
C/C++ 基础笔记(十四)多态与模板编程
c语言·c++·多态·模板
想吃火锅100544 分钟前
【leetcode】14.最长公共前缀js
算法·leetcode·职场和发展
Roann_seo%1 小时前
C++文件操作完全指南:从文本读写到二进制文件处理
开发语言·c++
坚果派·白晓明2 小时前
【鸿蒙PC】SDL3 适配:AtomCode + Skills 快速集成 NAPI 测试工具
c++·华为·ai编程·harmonyos·atomcode
云絮.2 小时前
数据库操作
数据库·mysql·算法·oracle
小林ixn2 小时前
LeetCode 206. 反转链表(迭代 + 递归详解)
算法·leetcode·链表
凡人叶枫2 小时前
Effective C++ 条款17:以独立语句将 newed 对象置入智能指针
java·linux·开发语言·c++·算法
凡人叶枫4 小时前
Effective C++ 条款16:成对使用 new 和 delete 时要采取相同形式
开发语言·c++·effective c++
菜鸟‍4 小时前
LeetCode 1 27 和 704 || 两数之和 移除元素 二分查找
算法·leetcode·职场和发展
不吃土豆的马铃薯4 小时前
C++ 高性能网络缓冲区 Buffer 源码解析
linux·服务器·开发语言·网络·c++