基克洛普斯将水晶骰子任意地排成一排。
“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作交换,得到: