冒泡排序是稳定的排序算法。
比较不同排序算法的核心区别:冒泡(相邻交换)、选择(选最值)、插入(插入有序序列)、归并(分治合并)、快排(划分递归)。
排序稳定性指相等元素排序后相对顺序是否改变。稳定:冒泡、插入、归并。不稳定:选择、快排、堆排。
【考点】排序算法|稳定性判定|冒泡排序过程
GESP 七级《排序》模块第 2 节「稳定排序」考点。命题人专抓学生混淆「排序效率」与「排序性质」的弱点——看到冒泡就只想到 O(n²) 慢,忘了它恰恰是稳定排序的典型代表。
看到题先想「稳定性定义」:若相等元素相对次序不变,则稳定。冒泡排序只比较相邻并交换,相等元素不会发生跨位置交换,因此相对次序必然保持。通法:判断任何排序算法稳定性,只需检查相等元素是否可能发生跨位置交换——若只交换相邻且相等元素不交换,则稳定。
B 选项错误源于学生惯性思维:把「效率低」误当作「不稳定」。命题人借冒泡排序的 O(n²) 特性设陷阱,诱导考生用时间复杂度否定性质。若学生只背结论不推导过程,遇到「快速排序是否稳定」也会误判。
命题人视角:若改为「快速排序是稳定排序」则答案为 B,考察点转向「分治排序的随机交换」。刷到类似题先问自己:题目考的是算法性质还是实现细节?冒泡排序的稳定性是定义层级的必然,而非实现层级的偶然。