scratch选择排序

一、案例演示

Scratch选择排序

二、案例介绍

什么是选择排序呢,在讲排序之前,要先跟小朋友们讲一下算法;什么是算法,通俗一点来说就是解决一个问题的一整套的计算方法或者完整的指令。对于小朋友们来说,解决一个数学应用题这就是一个小小的算法

而所谓的排序算法:就是针对一串无序的数字或者无序的列表,如何使其按照特定的要求(从小到大或者从大到小)的方式进行排序的一整套完整的计算指令。

选择排序:是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,找到之后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。

三、动图演示

(图片来源于网络)

四、案例分析

1、准备工作

事先建立一个列表用来存放要排序的数据,然后建立几个变量:数(存放随机产生的数字)、min(用来存放最小数对应项编号)、temp(临时变量,用来交换两项的值)、i和j(两个索引,用来遍历列表中的每一个元素)

2、程序分析

1.初始列表

在进行排序之前,我们首先要有一串无序的数字,这里我们通过Scratch的列表来进行实现,那如何给列表中添加一串随机的数字呢,这时候很多小朋友都能想到,要用我们的随机数积木

通过上述积木的使用确实是可以产生在指定区间的随机数,但是有一点小朋友们要认真思考一下,假设我们要产生10个在1-30之间的随机数字,如果只使用上面的积木加上有限循环重复10次这样产生的10个随机数有什么特点呢,看下面的图片:

小朋友们有没有发现什么问题,是不是有可能出现重复的元素,而我们一般是针对不重复的无序的元素进行排序的(当然我们今天学的即使是重复的也会进行排序);那我们就要想办法怎样让产生的随机数是不会重复出现。

所以为了达到我们的要求,就需要在将数字加入到列表之前进行判断列表里面是否已经包含了这个元素,如果包含了就重新产生新的数字直到新的数字没在列表里面,在将这个数字加入到列表里面

2.进行排序

在上面的数据产生了之后就需要对列表进行我们今天要讲的选择排序,开始的时候将列表中的第一项作为最小值,然后从当前列表项开始依次从后面的每一项中找到最小的那一项,如果找到之后和当前项的值进行交换,接着从当前项的下一项再继续重复上面的动作,直到列表全部数据都排好为止。所以整个案例,为了小朋友们能够理解的更清楚,小兔子老师这里将案例分成三个模块:开始程序、初始列表(产生不重复无序列表)、进行排序;具体分析如下:

开始程序

  1. 开始

  2. 调用初始列表积木

  3. 说正在进行选择排序....请观察列表值的变化...

  4. 调用进行排序积木

初始列表(自定义积木带3个参数区间最小值和最大值及个数)

  1. 自定义积木

  2. 清空列表

  3. 将数设为最小值和最大值之间的随机数

  4. 一直重复执行判断列表中是否包含这个数

  5. 如果没有包含将这个数加入列表

  6. 否则将这个数重新设为最小值和最大值之间的随机数

  7. 重复执行num次数第3-6步

进行排序(自定义积木)

  1. 自定义积木

  2. 将i设为1(第一轮开始位置)

  3. 将min设为i(最小值设为当前轮次的第1项)

  4. 将j设为i+1(从当前轮次的第2项开始比较)

  5. 判断第j项的值是否小于第min项

  6. 如果是将min设为j

  7. j+1

  8. 重复执行列表的项目数-i次第5-7步(每一轮需要比较的次数)

  9. 将列表中第min项对应的值和列表中第i项对应的值进行交换(找到最小项放到列表第一项)

  10. 然后i+1(继续下一轮)

  11. 重复执行列表项目数-1次第3-10步

3、流程图绘制

五、程序编写

六、案例总结

此案例难度系数4,属于Scratch高级编程,虽然是高阶编程范畴,但是选择排序相对而言还是比较好理解的;综合考查说话、随机数、无限循环(条件循环)、条件判断、变量定义和使用、列表定义和使用、自定义积木的定义和调用等积木的使用;难点在于:

  • 如何获取产生无序不重复的列表

  • 如何理解选择排序的工作原理

  • 如何实现一轮排序后找到最小值或者最大值

  • 如何实现整个列表的排序功能

  • 充分掌嵌套循环、列表和自定义积木的使用

方式方法有多种,小兔子老师只是使用了其中一种,小朋友们只要能实现题目要求即可

【Scratch算法讲解】01-Scratch选择排序 少儿编程Scratch常见排序算法案例分析讲解相关推荐

  1. 【蓝桥杯省赛真题12】Scratch排序 少儿编程scratch蓝桥杯省赛真题讲解

    目录 scratch排序 一.题目要求 1.编程实现 2.具体要求 二.案例分析

  2. 【Scratch考级99图】图32-等级考试scratch绘制复杂图形8个八边形 少儿编程 scratch画图案例教程

    目录 scratch旋转八边形 一.图形介绍 二.案例演示 三.案例分析

  3. 【Scratch考级99图】图30-等级考试scratch绘制复杂图形6个六边形 少儿编程 scratch画图案例教程

    目录 scratch旋转六边形 一.图形介绍 二.案例演示 三.案例分析

  4. 【Scratch考级99图】图20-等级考试scratch绘制复杂图形5个正方形 少儿编程 scratch画图案例教学

    目录 scratch5个正方形 一.案例介绍 二.案例演示 三.案例分析

  5. 少儿编程Scratch学习教程2--官方初学指南

    下载完软件,可以看一下官方的初学指南.学习下基本的操作. Scratch主要由角色和背景两部分构成.其中角色和背景都是由脚本,造型和声音组成的. 打开软件就可以看见下面的界面了. 在红色的脚本区域,是 ...

  6. 少儿编程Scratch学习教程5--基本操作(二)动画例子

    本篇介绍下动画相关例子 1.表情的转换 首先创建一个精灵角色 之后在外观选项中,选择"将造型切换为...",这样就可以在特定情况下就可以更换造型了 添加一个事件,当按下" ...

  7. 少儿编程Scratch学习教程4--基本操作(一)特效例子

    为了知道Scrtach可以在我们今后的编程中提供哪些功能.接下来我们分几篇介绍一些例子,熟悉Scratch的基本操作. 1.特效展示例子 首先创建一个角色,我选择了一个红色的苹果 在外观脚本里有很多可 ...

  8. 少儿编程Scratch学习教程--Scratch介绍及参赛相关

    之前写了几篇关于Scratch的使用文章.忽然想起,忘记介绍下Scratch了. Scratch是一款由麻省理工学院(MIT) 设计开发的少儿编程工具.官方网址是麻省理工学院网站的一个分支.这个软件的 ...

  9. 少儿编程Scratch学习教程3--帮助中心

    之前已经了解了Scratch的简单操作.在学习的工程中,不可能将全部的积木都操作覆盖一遍.那么我们就要找到一个方式可以自行解决问题.其实Scratch给我们提供了一个很好的帮助中心. 有两种快速介绍积 ...

  10. 少儿编程Scratch学习教程10--编程思想

    对于小朋友的编程思想,可以采用循序渐进的方式.我们不着急一下就做出东西来,在开始行动之前,应该先进行思考和分析.这也是学习少儿编程的一个最终目的--学会独立的思考和解决问题. 1.设立目标 在开始行动 ...

最新文章

  1. getCacheDir用法
  2. tcp为什么比udp慢_TCP和UDP那些事儿
  3. html li去掉黑点_10分钟教你Python爬虫(上) HTML和爬虫基础
  4. python opengl3d模型_初试PyOpenGL一 (Python+OpenGL)
  5. Go - 访问C动态分配数组
  6. ERP财务管理模块包括什么
  7. python 等值面多边形平滑_三次贝塞尔曲线平滑多边形
  8. imitate wechat - 0
  9. 计算机空格键作用,电脑键盘上的空格有什么用 键盘上空格的作用说明
  10. java实现倒酒的问题_倒酒问题
  11. ikbc pocker键盘 快捷键说明
  12. 软件测试需求文档案例,软件测试如何进行测试需求分析?
  13. 数据、信号、码元传输速率和信息传输速率等概念
  14. “华为杯”研究生数学建模竞赛2020年-【华为杯】C题:面向康复工程的脑电信号分析和判别模型(附优秀论文)
  15. BZOJ4399 魔法少女LJJ【线段树合并】【并查集】
  16. 软件考试:89个系统相关的基本概念
  17. 刷脸支付降本增效更快更便捷的支付体验
  18. ZTree的选择性展开树节点
  19. 机器学习模型中,偏差与方差的权衡及计算
  20. danmu.js pc端弹幕兼容ie9

热门文章

  1. jquery html包含自身,jquery 获取 outerHtml 包含当前节点本身的代码
  2. 51/52单片机 TCON控制字及TMOD寄存器
  3. java定时任务_定时任务3种实现方式
  4. CodeBlocks新手安装以及汉化(20,03版本)
  5. 饥荒联机版Mod开发——制作栏(九)
  6. abaqus2020安装教程
  7. Python函数的返回值
  8. C语言运算符优先级(超详细)
  9. 通达OA2017版 手机签章会撑大表格的处理
  10. 0基础学SQL(三)