《野牛程序员·算法启蒙课》之——插入排序,像打扑克牌一样排序!
用故事讲给孩子听:
还记得打扑克牌的时候怎么理牌吗?
是不是每拿到一张新牌,就在手上的牌里找合适的位置插进去,让整排扑克牌从小到大排好队?
插入排序就是这个意思:一边看数据,一边把它们“插”进一个排好队的序列里!
🧠 一句话记住插入排序:
把每个元素插入到前面已经排好序的“有序区”中。
步骤就像这样:
第一个元素:默认已经排好了(自己一个人当然有序)
看第二个元素,插到前面合适的位置
看第三个,插到前面排好队的位置中
一直到最后一个……
图解举个例子:
原始数组是:
【5, 3, 8, 6, 2】
第一个数5,默认有序
第二个数3,比5小 插到前面 【3, 5, 8, 6, 2】
第三个数8,比前面的都大 不动
第四个数6,比8小,比5大 插到中间 【3, 5, 6, 8, 2】
最后一个2,最小 插到最前面 【2, 3, 5, 6, 8】
完美
🧑 C++代码登场:
插入排序的优点:
排序过程中几乎不交换数据,只是“挪位”,非常节省开销
对于“差不多有序”的数组特别快!
理解门槛低,小朋友容易学会!
小朋友任务卡:
试试自己写一段程序,帮老师把[4, 1, 7, 2, 6]排一排~
可以用纸和笔先写步骤,再试着打代码,做个小小算法师!
野牛程序员教少儿编程与信息学奥赛
宜宾市野牛网络科技有限公司专业微信小程序开发、网站建设、软件开发等
领取专属 10元无门槛券
私享最新 技术干货