Menu
CoddyTech

稳定性

Coddy 冒泡排序 课程的第 7 课,共 11 课。

在这一课中,我们将检查冒泡排序算法是否稳定。

什么是稳定性?

如果两个键相等的对象在排序后的输出中的顺序,与它们在待排序输入数组中的顺序相同,那么这个排序算法就称为稳定排序算法。

例如,如果我们要对数组 [2,<strong>8<sub>1</sub></strong>,4,<strong>8<sub>2</sub></strong>,6,1] 排序,这里有两个 8,分别用 81 和 82 表示。排序后,可能得到以下两个数组:[1,2,4,6,<strong>8<sub>1</sub></strong>,<strong>8<sub>2</sub></strong>] 和 [1,2,4,6,<strong>8<sub>2</sub></strong>,<strong>8<sub>1</sub></strong>]。这两个数组都已排序,但第二个数组中两个 8 的顺序不同,而第一个数组中的顺序与输入数组相同。

现在,我们来检查冒泡排序算法是否稳定。

第一轮:[2,<strong>8<sub>1</sub></strong>,4,<strong>8<sub>2</sub></strong>,6,1] -> [2,4,<strong>8<sub>1</sub></strong>,6,1,<strong>8<sub>2</sub></strong>]

第二轮:[2,4,<strong>8<sub>1</sub></strong>,6,1,<strong>8<sub>2</sub></strong>] -> [2,4,6,1,<strong>8<sub>1</sub></strong>,<strong>8<sub>2</sub></strong>]

完成所有轮次后,最终输出为:[1,2,4,6,<strong>8<sub>1</sub></strong>,<strong>8<sub>2</sub></strong>]

请注意,输出数组中两个 8 的顺序与输入数组中的相同。

因此,冒泡排序算法是稳定的

亲手试试

这节课没有代码挑战。

冒泡排序中的所有课

自己练习: C 在线编译器