扑克排序

来自计算思维百科
跳转至: 导航搜索
扑克排序1.jpg

给出一副顺序打乱了的扑克牌,如何对它进行排序(要求排序的结果是面值一样的按花色顺序连在一起)?

解决方案

方案1---冒泡法

解决方法:在54张牌中选四张A,然后再在剩下的50张牌中找出四张2,按照这种规律进行下去,直到把所有的牌都排好序。这种方法粗暴简单,但耗时长。

方案2—基数排序法

解决方法:

分配:设置13个区域,一张一张地放入不同的区域,把面值相等的纸牌放入相同的一个区域。

区域内排序:对每个区域的纸牌按照花色顺序扑克排序2.jpg进行排序;

收集:按顺序收集每个区域的牌,排序完成。

注意,基数排序的基本思想就是进行多次桶排序(分配),适合解决一些平均分配的排序问题。

涉及的计算思维

扑克的排序,可以用计算机的一些排序算法来解决。比如说基数排序,基数排序是事先构建一些空“桶”,透过键值的部份资讯,将要排序的元素分配至某些“桶”中,藉以达到排序的作用,它是通过分配和收集的过程来实现排序。基数排序体现了计算思维的规约和分治的特点。