Appearance
题目
对一组数据 (2, 12, 16, 88, 5, 10) 进行排序,若前三趟排序结果如下:第一趟排序结果:2, 12, 16, 5, 10, 88;第二趟排序结果:2, 12, 5, 10, 16, 88;第三趟排序结果:2, 5, 10, 12, 16, 88,则采用的排序方法可能是()。
错因
B
希尔排序每趟按当前增量分组后分别插入排序,元素移动的位置分散且不规律,不会出现"最大值每趟都沉到末尾"的现象。误选 B 的人可能因为"数据越来越有序"就联想到希尔排序,而忽略了希尔排序中间结果的特征。
C
归并排序每趟按 2 的幂次合并子序列:第一趟相邻 2 个有序,第二趟相邻 4 个有序……第一趟结果应是 (2, 12), (16, 88), (5, 10) 各段内部有序,与题目给出的第一趟结果完全不同。
D
基数排序按位(个位、十位……)重新分配元素,每趟结果按某一数位的大小排列,不会产生"逐趟把最大值推到末尾"的递进现象。
总解析
逐趟观察变化规律:
- 初始:2, 12, 16, 88, 5, 10
- 第一趟:2, 12, 16, 5, 10, 88 — 最大值 88 沉到最后
- 第二趟:2, 12, 5, 10, 16, 88 — 次大值 16 沉到倒数第二(88 已就位)
- 第三趟:2, 5, 10, 12, 16, 88 — 12 沉到正确位置
每趟扫描相邻元素,把当前最大的未归位元素"冒泡"到末尾——这正是**冒泡排序(起泡排序)**的标志性特征:已归位元素从序列尾部向前逐趟固定。
希尔、归并、基数排序的中间状态均与此模式不符。
最终答案是 A。