scratch选择排序算法,以及整个分解排序的过程

算法,在编程中是一定会有的,这是编程的核心主要的部分。之前我们了解过冒泡排序算法,今天我们也是接触的排序算法,叫选择排序算法。以scratch编程来实现数字的选择排序算法:

scratch选择排序算法案例效果图

scratch选择排序算法案例效果图

什么是选择排序?

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

scratch选择排序整个分解的过程

数据列表添加的数据是:12、34、56、2、90五个数字。

要达到以上降序排序,我们可以把整个过程分解为以下步骤:

第一轮:找到(12、34、56、2、90)序列中的最大值90,并把90和位置1上的数据12交换,得到如下新的序列。90、34、56、2、
12;

第二轮: 90已经在正确的位置了,所以接下来只要找到(34、56、2、12)排序中的最大值56,并把56和位置2上的数据34交换,得到如下新的序列。90、56、34、2、12;

第三轮: 90和56已经在正确的位置了,所以接下来只要找到(34、2、12)中的最大值34,,34已经是在第3的位置了,所以不用交换位置,得到如下新的序列。90、56、34、2、12;

第四轮: 90和56和34已经在正确的位置了,所以接下来只要找到(2、12)列中的最大值12,并把12和位置4上的数据2交换,得到如下新的序列。90、56、34、12、2;

我们发现: 5个数据排序,需要经过4轮,每轮都是一个找最值 和交换的素(或过程,每一轮的区别只是数据范围变小了。这就是选择排序的基本过程。

接下来我们用scratch选择排序算法分步编程,来实现数字的降序排序

(1)首先需要建立一个“数据”列表,用来保存初始数据和交换后的数据。然元将原始数据(12、34、56、2、90)输入列表。

(2)然后我们需要找到(12、34、56、2、90)数据序列中的最大值,并和位置1的数据交换。需要设立以下四个变量。max:最大值; i:表示最大值的初始假设位置,i=1; k:保存最大值所在位置; j:遍历变量。

内嵌循环找出最大值,并交换位置

内嵌循环找出最大值,并交换位置

找到5个数字中的最大值,并记录最大值所在位置。这换两个变量的值,需要设立一个中间变量temp作为桥梁,这里我们需妥将max和第i个位置的数据交换。

(3)接下来,我们就是需要依次对(56、34、2、12)(34、2、12)(12、2) 3组数据序列重复操作。比较发现,唯一改变的就是i不断地增加1,重复4次(5个数据重复5-1=4次)。

外嵌循环是需要比较的轮数

外嵌循环是需要比较的轮数

选择排序总结:

(1)若有n个数据,则需要进行n-1轮排序。

(2)每轮就是一个找最值和交换的过程。

(3)每轮只有一次交换。

(4)数据范围越来越小。

scratch算法相关重要知识点集合:

scratch枚举算法

scratch冒泡排序算法

scratch递归算法

给TA赞助
共{{data.count}}人
人已赞助
综合资讯

计数排序(桶排序),scratch桶排序案例详解

2023-5-14 11:02:10

综合资讯

scratch用冒泡排序,实现数字从大到小排序

2023-5-14 11:02:17

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索