XingHuiSamaの宝藏之地
首页项目归档照片墙音乐灵境说说杂谈友链关于
封面

数据结构——归并排序题

2026-04-08 10:47:50
# 数据结构
# 工作

题目:归并排序的单趟推导

[单选题] 53. 设一组初始记录关键字序列为(25,50,15,35,80,85,20,40,36,70),其中含有5个长度为2的有序子序列,则用归并排序的方法对该记录关键字序列进行一趟归并后的结果为( )。

A. 15,25,35,50,20,40,80,85,36,70

B. 15,25,35,50,80,20,85,40,70,36

C. 15,25,35,50,80,20,36,40,70,85

D. 15,25,35,50,80,85,20,36,40,70

题解

归并排序(Merge Sort)的底层逻辑是“不断把相邻的两个有序小组,合并成一个更大的有序小组”。它的分组长度永远遵循翻倍规律:1变2,2变4,4变8……

第一步:看懂题目的“当前进度”

题目中明确指出,现在的进度是已经分好了“5个长度为2的有序子序列”。 我们在纸上把现在的序列按每 2 个数字画个框,划分阵营:

  • 第 1 组:[25, 50]
  • 第 2 组:[15, 35]
  • 第 3 组:[80, 85]
  • 第 4 组:[20, 40]
  • 第 5 组:[36, 70]

第二步:执行“下一趟”归并任务

既然现在的长度是 2,那么这一趟的任务就是:相邻的两个小组合并,变成长度为 4 的新小组。在合并时,要保证新小组内部依然是从小到大排好序的。

  • 合并操作 1(第1组 + 第2组): 把 [25, 50] 和 [15, 35] 合并。 按大小挑数字排队:挑 15 -> 挑 25 -> 挑 35 -> 剩下 50。 👉 得到新子序列:15, 25, 35, 50
  • 合并操作 2(第3组 + 第4组): 把 [80, 85] 和 [20, 40] 合并。 按大小挑数字排队:挑 20 -> 挑 40 -> 剩下 80, 85。 👉 得到新子序列:20, 40, 80, 85
  • 处理落单者(第5组): 因为总共有 5 组,前面 4 组刚好两两结对。第 5 组 [36, 70] 找不到可以结对的兄弟了。 归并排序的规矩是:如果落单了,这一趟就什么都不做,原样照抄下来等下一轮再说。 👉 得到序列:36, 70

第三步:拼出最终答案

把上面三步得出的序列按顺序连在一起,去掉括号,就是这一趟归并结束后的最终长相: 15, 25, 35, 50, 20, 40, 80, 85, 36, 70

对应修正标点后的选项 A,推导完成!

avatar

XingHuiSama

在代码、学术与分子动力学模拟间穿梭的普通人。近期正埋头于 GROMACS 模拟研究与神经网络计算。

RECOMMENDED

GROMACS 2025 分子动力学模拟初探2222

2026-03-24 07:00:45

Computational Chemistry Tool 工具二介绍

2026-04-01 07:00:23

Leetcode一百题——字母异位词分组

2026-04-07 15:34:18

Table of Contents