字符排序游戏

来自计算思维百科
跳转至: 导航搜索
字符排序游戏.jpg

某公司举行一个游戏,参与者每4人为一组。每组都有36张乱序的卡片,卡片上只有一个字符,这个字符是26个字母和10个阿拉伯数字中的一个,每张卡片都不相同。要求每一组将卡片按从小到大得顺序排序(数字比字母大),最快的一组获胜,请问有什么策略吗?

解决方案

方案一-插入排序法

这种方法只需要让每组的一个人拿着36张卡片,一张一张地看,每看一张卡片,就把它插入有序卡片合适的位置,直到36张卡片都看完。

方案二-并行排序法

因为每组有四个人,为了充分发挥每个人的力量,可以用并行的方法来做。

第一步:分工

将36张卡片摊开在桌上。第一个人负责找A~I,第二个人负责找J~R,第三个人负责找S~0(零),第四个人负责1~9。

第二步:执行

四个人同时进行找属于自己的卡片,边找边用插入排序法排序。

第三步:合并

第一个人把所有人收集的卡片汇集在一起即为有序的卡片。

运用的计算思维

在方案一中,我们只利用了一个人来排序,这是比较直接的想法,是一种“蛮力法”,体现了机械式的计算思维。而方案二,利用了组内的四个人的力量,将任务分解,四人同时进行,最后进行汇总,运用的是“分解”的计算思维。方案一对资源的利用率相对方案二来说比较低,它的速度也没有方案二快。