六张扑克牌,给孩子讲清排序算法

作者:浩哥AI实验室

把六个数字从小到大排好,对成年人来说几乎不需要思考。

看一眼,挪几下,答案就出来了。

但如果追问一句:

你能不能把自己的办法说清楚,让一个完全不会判断的机器人也能照着完成?

事情马上变得不一样。

机器人不知道什么叫“看起来应该放这里”。它需要明确的规则:比较谁、什么时候交换、怎样知道已经结束。

这就是 WHSK 104 第二课要解决的问题。

课程地址:怎样最快排好一队?

怎样最快排好一队

排好不难,说清楚才难

课程里先放了一组打乱的数字。

每点击一次“走一步”,系统只比较相邻的两个数字。如果左边更大,就交换;顺序正确,就保持不动。

孩子能看到被比较的数字变成黄色,也能同时看到比较次数和交换次数。

走完一轮,当前最大的数字会来到最右边。下一轮继续处理剩下的部分。

这就是“冒泡排序”名字背后的直觉:大的数字一点点向右移动,像气泡慢慢浮到水面。

排序过程中的比较、交换与次数记录

但课程没有停在“看懂动画”。

因为看懂和能解释,仍然不是一回事。

孩子还需要回答:为什么只比较相邻数字?哪一个位置已经确定?什么时候可以停止?

谁更快,必须先说清比较标准

排序里还有一个很容易被忽略的问题。

我们常说“这个算法更快”,但到底在比较什么?

是比较次数更少?

是交换次数更少?

是代码更容易理解?

还是面对一百万个数字时花的时间更短?

第二课同时计算“相邻交换”和“每轮找最小值”两种策略的交换次数。孩子可能会发现,同一个“排好数字”的结果,不同办法付出的代价并不一样。

这其实是一种很重要的思维训练:

不要只说谁更好,要先说明你用什么标准判断。

如果你也关心孩子怎样从“得到答案”走向“解释方法”,欢迎关注“浩哥AI实验室”。课程后续会继续把预测、记录和验证放在答案前面。

把排序比赛搬到餐桌上

离开电脑以后,只需要六张扑克牌或六张数字纸条。

一个人当排序员,一个人当记录员。

第一轮,只能比较相邻卡片。每比较一次画一笔,每交换一次也画一笔。

第二轮,重新打乱同一组牌,改成每轮找出最小牌,直接放到最左边。

最后比较两列记录。

用六张牌和家人完成排序实验

这个实验有一个很好的地方:家长不需要懂代码。

家长只需要负责守规则和记录,然后追问:

哪张牌最先到了不会再动的位置?

比较次数少,交换次数一定也少吗?

如果牌本来已经基本排好,哪种办法可能更省事?

孩子不是在背“冒泡排序的定义”,而是在亲手执行一套规则、观察代价,再用记录支持自己的结论。

最后才回到代码

桌面实验完成以后,页面提供三档 JavaScript 练习。

第一档只填一个比较符号。

第二档补出交换两个数字的关键代码。

第三档根据注释自己完成整个排序函数。

这里最重要的不是代码写了多少,而是代码与刚才的实物动作一一对应:

比较相邻卡片,对应 numbers[i] > numbers[i + 1]。

交换卡片位置,对应数组里的两个值互换。

重复走完整行,对应循环。

当孩子知道代码在描述哪一个真实动作,语法就不再是一堆凭空出现的符号。

小学生也能理解算法,但不能只靠“讲简单一点”

所谓“小学生都能理解”,不是把术语换成可爱的说法就结束。

真正需要改变的是学习过程。

先让孩子预测。

再让过程可见。

然后用手执行同一套规则。

最后用语言和代码把它表达出来。

第二课已经可以在线体验:https://howie.wang/WHSK/104/02/

公众号和视频号“浩哥AI实验室”继续分享 AI 工具、课程与真实实验;家庭教育和成长方向也会同步到视频号“浩哥AI实验室·成长研究”。公众号微信号:de8ug-vip。