古希腊神话中的西西里岛,是一片被众神诅咒之地,终年被狂乱的风暴和天谴闪电环绕。然而,岛上却是一片祥和与宁静,遍地都是金光灿灿的金银财宝,足以让最淡定的冒险家失去理智。
当杨成抵达了这里后,却一点也没有在金币堆中打滚的兴致。
原因很简单,眼前有一头身高二十米的独眼巨人在守护这些宝藏。
“你想怎样...”,杨成颤抖着双手,盯着独眼巨人那犹如百年大树般粗壮的大木棒。
要不是知道这是在游戏中,一般人早就崩溃了。
“小不点”,巨人一只独眼紧紧地盯着杨成。
“我基克洛普斯绝不滥杀无辜,现在摆在你眼前的有两条道路”。
“要么回答众神之王宙斯的问题”。
“要么尝尝俺的破坏死光或大木槌”。
“你选哪一个?”
“那就...回答问题吧”,杨成不禁在心里面嘀咕,这有得选吗?
“很好”,独眼巨人从一个皮袋中掏出一些东西,小心翼翼地摆放在地上。
杨成定睛一看,发现是一个个半人高的水晶骰子,骰子上有一面刻有希腊文数字。
基克洛普斯将水晶骰子任意地排成一排。
“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作交换,得到:
“1,3,2,4,5,6”
好了,现在4,5,6都处在了正确的位置,那么,就只要将3和2交换位置,便可以得到正确的结果。
“1,2,3,4,5,6”
杨成气喘吁吁地搬完最后一个水晶骰子,累得一屁股坐在地面上。
“就这样了...呼呼”,杨成上气不接下气。
“5次交换就可以了”。
“哈哈”,独眼巨人发出一阵雷鸣般的笑声。
“没想到你这小不点还有点智慧”,基克洛普斯拍了拍手。
“那我就允许你在我的岛上玩几天!”
“让我先睡一觉”,杨成却是头一歪,倒在了沙滩上。
“叮!恭喜您完成了冒泡排序的相关任务!”
“当前积分51分,击败了全球26%的玩家,请您再接再厉!”,系统依然忠实地播报着。