首页课程小红花墙

C++ 入门 · 小纸条

选一章打印。双面打印(按长边翻页)后沿虚线剪开,每张卡片正面题目、背面答案。

第 1 章30第 2 章30第 3 章30第 4 章30第 5 章30第 6 章30第 7 章30第 8 章30第 9 章30第 10 章30第 11 章30第 12 章30第 13 章30第 14 章30第 15 章30第 16 章30第 17 章30第 18 章30第 19 章10
只印题目
第 1 页 · 正面(题目)
1排序为什么重要

想一个"排好序就变简单"的问题。

2冒泡再练

不看资料默写冒泡排序。

3冒泡的提前结束

加一个标记变量实现这个优化。

4选择排序再练

默写选择排序。

5插入排序

手动用插入排序排 5 3 8 1。

6插入排序的优势

已经排好序的数组,插入排序要挪几次?

7稳定性是什么

为什么选择排序不稳定?

8稳定性有什么用

什么场景下你会需要稳定排序?

9用现成的排序

查一下你用的语言里排序怎么调用。

10自定义排序规则

按成绩从高到低排,规则怎么写?

第 1 页 · 背面(答案)

参考答案(家长):双重循环,内层范围随外层递减。

参考答案(家长):如找出成绩最接近的两个同学。

参考答案(家长):外层定位置,内层找最小值的下标,最后交换一次。

参考答案(家长):每趟开始置假,发生交换就置真,一趟结束若仍为假就跳出。

参考答案(家长):一次都不用,只比较不挪动。

参考答案(家长):3 插到 5 前、8 留原位、1 插到最前,得 1 3 5 8。

参考答案(家长):多关键字排序时,靠稳定性保住前一次的顺序。

参考答案(家长):交换时会跨过中间元素,可能把相同值的顺序换掉。

参考答案(家长):比较时返回"前者成绩大于后者"。

参考答案(家长):C++ 用 sort,Python 用 sort 或 sorted。

第 2 页 · 正面(题目)
11多关键字排序

写出"成绩降序、同分学号升序"的规则。

12查找:一个个找

一万个数里找一个,最坏要比几次?

13查找:折半找

一万个数二分查找最多几次?

14二分的前提

无序数据想用二分,该先做什么?

15二分的边界

写完二分,先拿只有 1 个和 2 个元素的数组试。

16找第一个满足的

数组 1 2 2 2 3 里找第一个 2,在第几位?

17二分答案的味道

猜数字游戏用的是不是这个思路?

18前缀和是什么

这是用什么换什么?

19前缀和怎么算

数组 1 2 3 4 的前缀和是什么?

20用前缀和求区间

上题中第 2 到第 4 个的和怎么算?

第 2 页 · 背面(答案)

参考答案(家长):一万次。

参考答案(家长):先判成绩不等就按成绩,相等则按学号。

参考答案(家长):先排序。

参考答案(家长):约 14 次(2 的 14 次方大于一万)。

参考答案(家长):第 2 位(下标 1)。

参考答案(家长):小数据能手动验证,最容易暴露边界错误。

参考答案(家长):用一点额外空间,换查询速度。

参考答案(家长):正是。每次猜中间、根据反馈砍掉一半。

参考答案(家长):10 减 1 得 9,正是 2+3+4。

参考答案(家长):1、3、6、10。

第 3 页 · 正面(题目)
21差分是什么

给第 2 到第 4 个各加 5,差分数组要改哪两处?

22差分还原

差分和前缀和是什么关系?

23桶计数

统计 0 到 100 的分数分布,要几个桶?

24桶排序的直觉

这种排序适合什么数据?

25值域太大就不行

什么时候该放弃桶的思路?

26双指针:对撞

为什么这样不会漏掉答案?

27双指针:同向

把数组里的 0 全挪到末尾,怎么用双指针做?

28滑动窗口

这比枚举所有子段快在哪?

29贪心是什么

拿硬币凑钱时,你会怎么拿?

30贪心会翻车

这说明什么?

第 3 页 · 背面(答案)

参考答案(家长):互为逆运算,一个求和一个作差。

参考答案(家长):第 2 个加 5,第 5 个减 5。

参考答案(家长):值域小、数量大的整数,比如全班分数。

参考答案(家长):101 个。

参考答案(家长):每次移动都排除了不可能的组合,范围只会缩小。

参考答案(家长):值域远大于数据量的时候。

参考答案(家长):每个元素最多进出窗口各一次,整体只需扫一遍。

参考答案(家长):一个指针扫描,遇到非 0 就放到另一个指针的位置并右移。

参考答案(家长):贪心不是万能的,用之前要验证或证明。

参考答案(家长):先拿面额大的 —— 这就是贪心的直觉。

op599 课程