插入算法

斗地主的家长,都知道拿到一张牌后,按顺序插入手中的牌里面,殊不知这正是利用了我们软件编程中插入排序算法,今天请你抽出一点打牌的时间把这个看懂,然后教给你的孩子。

插入排序是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。
1、将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。
2、从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置。(如果待插入的元素与有序序列中的某个元素相等,则将待插入元素插入到相等元素的后面。)
程序演示:

程序要求:
利用三个列表(排序前列表、演示列表、排序后列表)进行实现插入排序算法,玩家输入排序数量,电脑随机赋值,点击开始按钮排序开始,演示列表每隔10秒插入一个数,排序演示完成后等待10秒,导入排序后列表。
难点、重点:
排序前列表按顺序取出值以后,和演示列表中的值进行比较如何实现演示列表数据的遍历循环,比对出结果以后如何插入数据值。
新建变量:变量的设置需要孩子们去思考运算过程中数据的如何运算,涉及到那些数量的传递,比较考验孩子们的大局观。


程序初始化:变量归零,列表清零,生成需排列的数据。

开始按钮脚本:当开始按钮背点击,排序开始,利用了广播。

排序脚本:当接收到“开始排序”广播考试运算,算法实现用的上面动图的思路,遍历演示列表中的数据和我们需要插入的变量进行大小对比,如果小于演示列表中的数据就插入在这个数据前,如果插入变量是最大值则放在演示列表最后一行。
导入“排列后列表”脚本:利用循环调取的方式取出数据放入排序后列表中。
程序编写完毕,家长朋友们编程是我们培养孩子们综合能力的一种方式,他不是培养孩子书写代码,也是不玩游戏,要让他们有目的的去完成一些项目,这才是我们让孩子学习编程的目的。
今天我们就到这里,明天再见,还烦请点击右下角的 “在看” 按钮,谢谢!