终于,我们要正式开始讲解排序算法啦!今天先来讲一个最最简单的排序算法:选择排序。
扑克牌小游戏
排列 1-10
开始讲算法之前,我们还是先来看一个小游戏:
以一副扑克牌为道具,取出其中某一花色的 1-10,打乱顺序,扔在桌上,然后对它们进行人肉排序。我们该怎么做呢?
既然都知道是 1-10 了,那就先找 A,再找 2,然后 3,4,5,……,10 不就得了。
这样做当然可以做到把同一花色牌的 1-10 排出来,我们可以先预留出 10 个“空位”,然后每捡起一张牌就将它放到对应的位置上,比如先捡起黑桃 6,就放在第 6 个“空位”上,然后捡起黑桃 A,再放在第 1 个“空位”……
如此,很容就把 10 张牌都排好了,而且是有序的:
填空 $\ne$ 排序
为什么上述“填空”式的方法不叫排序呢?
很简单,如果我们让小伙伴随便从目前的 1-1