Scratch3.0编程小课堂33(算法题:冒泡排序)

createh52个月前 (05-03)技术教程16

今天我们用scratch来做一道算法题:冒泡排序。



题目:系统随机生成5个1到100的数,程序使用冒泡排序法对它们进行从小到大的排序;

角色:小精灵;

知识点:冒泡排序,列表(链表),变量,循环,多重选择;

知识普及:冒泡排序(Bubble Sort)

这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端,就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。

原理:从第一对元素开始依次比较两个相邻的元素,直到结尾的最后一对,如果某一对的顺序(如从小到大)不符合就把它们交换过来,第一轮比较过后,最后的元素应该会是最大的数;

然后开始第二轮比较,重复以上的步骤,除了最后一个元素;

然后是第三轮……

每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。最终完成冒排序。

一、准备工作

1、背景:背景库选择“户外”类;

2、角色:角色库选择“奇幻”类;

3、列表(链表):新建列表命名“数列”;

4、变量:新建三个变量,变量“n”用于选择列表中的数据项,变量“m”用于控制比较的轮次,变量“交换变量”用于交换列表数据;


二、编辑脚本

1、初始化:三个变量赋初始值,列表清空;

2、随机列表:使用一个循环,让系统随机生成5个1到100的数,并依次赋值给列表;

3、准备排序:等待1秒后开始排序;

4、循环:经过4轮循环后完成排序;

5、选择结构1:使用选择判断结构比较相邻两个元素的大小,并通过“交换变量”实现交换;

6、选择结构2:使用选择结构判断,如果没有比较到最后一对,则变量n的值增加1;

7、选择结构3:使用选择结构判断,如果比较到了最后一对,就把变量n的值重置为1,即从第一对重新开始比较,并把循环变量m的值增加1,即开始下一轮的比较;

三、完整脚本

想一想,怎么样实现从大到小的冒泡排序呢?

相关文章

C语言排序方法——冒泡排序详解!你学会了吗?

冒泡排序法的基本思路为:每次将相邻的两个数比较,将小的调在前面。举个例子,如果有6个数:9,8,5,4,2,0。第一次先将最前面的两个数9和8对调。第二次将第2个数和第3个数对调(9和5)······...

冒泡排序(冒泡排序python)

冒泡排序(Bubble Sort)是一种简单的排序算法,其基本思想是对待排序的元素从前向后依次比较相邻的两个元素,如果顺序不对则交换它们的位置,轮比较下来,最大的元素就会“冒泡”到数组的末尾重复这个过...

冒泡排序——C语言(冒泡排序c语言什么意思)

冒泡排序的图示:假设有一个数组 [5, 3, 8, 6, 2],逐步冒泡排序的过程:第一轮:比较 5 和 3,5 > 3,交换 → [3, 5, 8, 6, 2]比较 5 和 8,5 <...

基于C语言的冒泡排序法(c语言冒泡排序思路)

冒泡排序法:对数组中的n个整数类型的数据元素(a[0]~a[n-1])进行排序。void BubbleSort(int a[],int n){ int i,j,flag=1; int temp; fo...

一文透彻解析冒泡排序(冒泡排序有几种方法)

谈一谈冒泡排序看到很多人谈算法题,上来就是一段代码,你去看去吧,自己悟去吧。心塞有的题目老长时间就是不理解。。。本文分析一下啥是冒泡排序?排序就是一组数字,按照顺序排列(从小到大) ,冒泡排序是排序的...

常见的三种排序(冒泡排序、插入排序、选择排序)

冒泡排序什么是冒泡排序?百度百科解释:它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要...