跳到正文

归并排序与逆序对

40 分钟

本节进入 408 强化阶段的 归并排序与逆序对。要求从定义出发完成真题级推演,并把过程写到可以复查。

状态模型与不变量

归并两个有序段时,若右元素小于左元素,则它与左段剩余全部元素构成逆序对。

开始计算前先列出输入、单位、下标与初始状态。算法题必须说明数据结构保存什么;硬件、操作系统和网络题必须画出字段或时间线。任何一步状态更新都要能指出依据。

例题推演

[2,4,1,3,5] 的逆序对是 (2,1)、(4,1)、(4,3),共 3 个。

正式作答时按“公式或规则—代入—中间状态—结论”书写。若有多次访问、调度或转发,用表格逐行记录,不能靠脑中跳步。完成后用极小输入、边界输入和一个反例复核。

易错边界

相等元素不构成逆序对;比较条件写成 <= 可同时保持排序稳定。

选择题要逐项检查前提与量词;计算题要检查字节/比特、周期/秒、地址/块号等单位;算法题还要说明最坏复杂度、额外空间和终止性。

随课训练要求

  1. 单选题必须解释另外三项为何错误。
  2. 多选题漏选、多选均不得分。
  3. 计算题保留推导;代码题必须通过四个独立用例,禁止样例硬编码。
  4. 将错因标为知识、建模、状态更新、计算或审题,并在次日重做。

能得到一个数不等于掌握;能重建状态、解释规则并迁移到变式才算完成。

Practice

本课练习

3

先独立作答再提交;编程题会在隔离沙箱中真实编译、运行并对拍。

1强化单选:归并排序与逆序对 2

下列关于本节模型的说法,正确的是哪一项?

登录 后答题可以领小红花
2强化多选:归并排序与逆序对 2

选择所有正确说法。漏选或多选均不得分。

多选题:必须选全正确项,漏选或多选均不得分。

登录 后答题可以领小红花
3强化应用:归并排序与逆序对 3

输入 n 和 n 个整数,输出逆序对数量。使用 Python 3,答案可能超过 32 位。

登录 后答题可以领小红花