六张扑克牌,给孩子讲清排序算法
作者:浩哥AI实验室
把六个数字从小到大排好,对成年人来说几乎不需要思考。
看一眼,挪几下,答案就出来了。
但如果追问一句:
你能不能把自己的办法说清楚,让一个完全不会判断的机器人也能照着完成?
事情马上变得不一样。
机器人不知道什么叫“看起来应该放这里”。它需要明确的规则:比较谁、什么时候交换、怎样知道已经结束。
这就是 WHSK 104 第二课要解决的问题。
课程地址:怎样最快排好一队?

排好不难,说清楚才难
课程里先放了一组打乱的数字。
每点击一次“走一步”,系统只比较相邻的两个数字。如果左边更大,就交换;顺序正确,就保持不动。
孩子能看到被比较的数字变成黄色,也能同时看到比较次数和交换次数。
走完一轮,当前最大的数字会来到最右边。下一轮继续处理剩下的部分。
这就是“冒泡排序”名字背后的直觉:大的数字一点点向右移动,像气泡慢慢浮到水面。

但课程没有停在“看懂动画”。
因为看懂和能解释,仍然不是一回事。
孩子还需要回答:为什么只比较相邻数字?哪一个位置已经确定?什么时候可以停止?
谁更快,必须先说清比较标准
排序里还有一个很容易被忽略的问题。
我们常说“这个算法更快”,但到底在比较什么?
是比较次数更少?
是交换次数更少?
是代码更容易理解?
还是面对一百万个数字时花的时间更短?
第二课同时计算“相邻交换”和“每轮找最小值”两种策略的交换次数。孩子可能会发现,同一个“排好数字”的结果,不同办法付出的代价并不一样。
这其实是一种很重要的思维训练:
不要只说谁更好,要先说明你用什么标准判断。
如果你也关心孩子怎样从“得到答案”走向“解释方法”,欢迎关注“浩哥AI实验室”。课程后续会继续把预测、记录和验证放在答案前面。
把排序比赛搬到餐桌上
离开电脑以后,只需要六张扑克牌或六张数字纸条。
一个人当排序员,一个人当记录员。
第一轮,只能比较相邻卡片。每比较一次画一笔,每交换一次也画一笔。
第二轮,重新打乱同一组牌,改成每轮找出最小牌,直接放到最左边。
最后比较两列记录。

这个实验有一个很好的地方:家长不需要懂代码。
家长只需要负责守规则和记录,然后追问:
哪张牌最先到了不会再动的位置?
比较次数少,交换次数一定也少吗?
如果牌本来已经基本排好,哪种办法可能更省事?
孩子不是在背“冒泡排序的定义”,而是在亲手执行一套规则、观察代价,再用记录支持自己的结论。
最后才回到代码
桌面实验完成以后,页面提供三档 JavaScript 练习。
第一档只填一个比较符号。
第二档补出交换两个数字的关键代码。
第三档根据注释自己完成整个排序函数。
这里最重要的不是代码写了多少,而是代码与刚才的实物动作一一对应:
比较相邻卡片,对应 numbers[i] > numbers[i + 1]。
交换卡片位置,对应数组里的两个值互换。
重复走完整行,对应循环。
当孩子知道代码在描述哪一个真实动作,语法就不再是一堆凭空出现的符号。
小学生也能理解算法,但不能只靠“讲简单一点”
所谓“小学生都能理解”,不是把术语换成可爱的说法就结束。
真正需要改变的是学习过程。
先让孩子预测。
再让过程可见。
然后用手执行同一套规则。
最后用语言和代码把它表达出来。
第二课已经可以在线体验:https://howie.wang/WHSK/104/02/
公众号和视频号“浩哥AI实验室”继续分享 AI 工具、课程与真实实验;家庭教育和成长方向也会同步到视频号“浩哥AI实验室·成长研究”。公众号微信号:de8ug-vip。