第二十四章 冒泡排序

编程之战 程序小猿 598 字 2024-05-17

基克洛普斯将水晶骰子任意地排成一排。

“1,3,6,4,2,5”,现在骰子是这样排列的。

“小不点,问题是这样,我要你只交换相邻的骰子,控制骰子交换次数在6次以内,使得结果从1到6为增序”。

“或者说,我要得到”。

“1,2,3,4,5,6,这样的结果”

杨成思考了一下,根据题意,是要进行排序。

只能交换相邻的骰子,这就限制了算法类型,例如快速排序,选择排序这样的算法就行不通,但可以使用冒泡排序或者插入排序,最容易理解的当然还是冒泡。

好了,根据冒泡排序的原理,杨成开始第一次冒泡,这次的目的在于将最大的元素6“冒泡”到列表的最后面。

6和4,6和2,6和5作交换,这就用掉了3次。

现在的骰子是这样:

“1,3,4,2,5,6”

然后,第二趟冒泡,因为5,6已经在了正确的位置,所以只需要处理4。

将4和2作交换,得到: