Scratch四级:第08讲 排序算法

news2024/12/26 11:11:30

第08讲 排序算法

教练:老马的程序人生
微信:ProgrammingAssistant
博客:https://lsgogroup.blog.csdn.net/


讲课目录

  • 常考的排序算法
  • 项目制作:“三个数排序”
  • 项目制作:“成绩查询”
  • 项目制作:“排序”
  • 项目制作:“森林运动会”

排序算法

  • 计算机学会(GESP)中属于四级的内容

  • 电子学会(CIE)中属于四级的内容


排序算法

  • 交换排序(冒泡排序)
  • 插入排序
  • 选择排序

排序算法:交换排序

思路:通过相邻记录之间的比较和交换

  • 使关键字较小的记录如气泡一般逐渐向上漂移直至水面。
  • 使关键字较大的记录如重物一般逐渐向下沉降直至水底。

例如:对以下这组数字由小到大排序。

45 , 78 , 12 , 34 , 32 45,78,12,34,32 45,78,12,34,32


真题练习

01:随机生成5个数字存储到列表中,下面哪个选项可以实现列表中的数字从小到大排列?( )


  • A.


  • B.


  • C.


  • D.

在这里插入图片描述

  • 参考答案:A
  • 试题解析:C,D通过中间变量交换数据错误,由于是由小到大排序,第一趟需要把最大的数据放到最后面。选择A。

真题练习

02:使用冒泡排序法对 5, 2, 6, 3, 8 进行升序排列,则第一趟排序的结果为?( )

  • A. 2, 5, 3, 6, 8
  • B. 2, 5, 6, 3, 8
  • C. 2, 3, 6, 5, 8
  • D. 2, 3, 5, 6, 8
  • 参考答案:A
  • 试题解析:冒泡排,5 > 2交换,5 < 6 不交换,6 > 3 交换,6 < 8不交换。第一趟排序之后的序列2、5、3、6、8选择A。

真题练习

03:使用冒泡排序算法对数据:32、40、21、46、69,进行从小到大排序,第一轮排序的结果是?( )

  • A. 32、40、21、46、69
  • B. 40、32、21、46、69
  • C. 21、32、40、46、69
  • D. 32、21、40、46、69
  • 参考答案:D
  • 试题解析:冒泡排,32 < 40不交换,40 > 21 交换,40 < 46 不交换,46 < 69 不交换。第一趟排序之后的序列32、21、40、46、69,选择D。

排序算法:插入排序

思路:将一个记录插入到已经排好序的有序表中,从而得到一个新的记录增1的有序表。即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止。

例如:对以下这组数字由小到大排序。

45 , 78 , 12 , 34 , 32 45,78,12,34,32 45,78,12,34,32


排序算法:选择排序

思路:在要排列的一组数( n n n个)中,选出最小的一个数与第1个位置的数交换;然后在剩下的数当中再找最小的与第2个位置的数交换,依次类推,直到第个 n − 1 n-1 n1元素和第个 n n n元素比较为止。

例如:对以下这组数字由小到大排序。

45 , 78 , 12 , 34 , 32 45,78,12,34,32 45,78,12,34,32


真题练习

04:对存有8个元素的列表 [49, 38, 65, 97, 76, 13, 27, 50] 按从小到大的顺序进行排序,选择排序第一趟的排序结果是?( )

  • A.[13,38,65,97,76,49,27,50]
  • B.[13,27,38,49,50,65,76,97]
  • C.[97,76,65,50,49,38,27,13]
  • D.[13,38,65,50,76,49,27,97]
  • 参考答案:A
  • 试题解析:选出最小的13和第一个位置上的49交换位置。第一趟排序之后的序列为[13,38,65,97,76,49,27,50],选择A。

项目制作:“三个数排序”

2022.09 编程题 三个数排序(利用交换排序

输入三个数,比较三个数的大小,并将这三个数按照从小到大的顺序说出。


1. 准备工作

(1)保留小猫角色,默认位置;

(2)白色背景。


2. 功能实现

(1)依次询问输入三个数;




(2)按下空格键,小猫从小到大说出三个数,三个数之间用逗号隔开。


3. 评分标准

(1)使用询问并等待输入三个数;(3分)

(2)按下空格键后,小猫能够按照从小到大的顺序说出三个数(10分),格式为“X,Y,Z”(2分)。


项目制作:“成绩查询”

2022.06 编程题 成绩查询(利用交换排序

期末考试结束了,小朋友想知道自己考试的成绩和班级排名,让我们一起来实现这个功能吧!


1. 准备工作

(1)保留默认白色背景和小猫角色;

(2)创建名为“姓名”和“成绩”的列表,按照图1输入相关内容。

图1


2. 功能实现

(1)点击小绿旗,小猫询问“你要查询谁的成绩?”

(2)如果输入的姓名没在“姓名”列表中,小猫说“此姓名无效!”2秒,如图2,程序结束;

图2


(3)如果输入的姓名在“姓名”列表中,小猫可以根据给定的姓名,查询出对应的成绩,如图3;

图3


(4)对成绩进行降序排列,并说出该成绩的序号(名次),如图4。

图4


3. 评分标准

(1)正确创建列表“姓名”和“成绩”(1分),只要多于三个姓名和成绩即可,不一定跟题目数据一致(1分);

(2)小猫询问,能够判断姓名不在列表中情况;(3分)

(3)姓名在列表中,说出成绩;(4分)

(4)对成绩列表进行降序排列,需要有降序排序的过程;(4分)

(5)让小猫说出该成绩在“成绩”列表的序号。(2分)


项目制作:“排序”

2019.12 编程题 排序(利用插入排序


1. 准备工作

(1)选择空白背景;

(2)保留小猫角色。

2. 功能实现

(1)制作一个新的积木,文字标签为“排序”,添加三个输入项,以便于输入三个待排序的数字;

(2)在自定义积木的三个输入框中,输入任意三个数字,点击绿旗。

(3)名称为“排序”的列表中,将按照从大到小的顺序排列。


项目制作:“森林运动会”

2021.12 编程题 森林运动会(利用插入排序

在森林运动会中,小猫、小狗、小兔子、乌龟、小猴子参加了800米耐力跑项目,分别耗时3分25秒、4分15秒、3分45秒、4分45秒、4分5秒。请设计程序实现自动排名。


排序前


排序后


1. 准备工作

(1)保留小猫角色及空白背景;

2. 功能实现

(1)建立名为“耐力跑”的列表,用于记录运动员的成绩,以秒为单位;

(2)点击绿旗,初始化列表,依次往列表中加入:205,255,225,285,245;

(3)点击小猫,对运动员的成绩进行降序排列。


3. 评分标准

(1)初始化列表,删除所有项后,加入成绩;(2分)

(2)点击小猫后,排序降序排列正确;(5分)

(3)正确删除、替换链表中的数据;(2分)

(4)正确使用循环的嵌套;(1分)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1670104.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微信小程序发送订阅消息sendMessage

微信小程序发送订阅消息sendMessage 请注意订阅消息一次性订阅只只能授权一次接受一条消息多次授权会累加接受次数&#xff0c;wx.requestSubscribeMessage调用授权 目前长期性订阅消息仅向政务民生、医疗、交通、金融、教育等线下公共服务开放 //授权弹框&#xff0c;只弹出…

【Redis7】10大数据类型之Stream类型

文章目录 1. Stream简介2. 生产消息命令(XADD)3. 查询相关命令3.1 获取指定范围内的消息(XRANGE)3.2 逆序获取指定范围内的消息(XREVRANGE)3.3 返回消息的数量(XLEN) 4. 删除消息命令(XDEL)5. 截取消息命令(XTRIM)6. 消费消息命令(XREAD)7. 消费者组管理命令7.1 创建消费者组(X…

给centos机器打个样格式化挂载磁盘(新机器)

文章目录 一、先安装lvm2二、观察磁盘三、磁盘分区四、建PV五、建VG六、创建LV七、在LV上创建文件系统八、挂载到/home&#xff08;1&#xff09;临时挂载&#xff08;2&#xff09;永久挂载 九、最后reboot一下 一、先安装lvm2 yum install lvm2二、观察磁盘 三、磁盘分区 四…

Springboot + xxlJob注意事项

1. 部署 就是这个地址: https://gitee.com/xuxueli0323/xxl-job 由于xxl-job的思想是 调度中心负责调度任务,然后有执行器负责接受调度的信息,然后根据调度,执行任务中的具体逻辑 将 xl-job-admin 启动起来,操作xl-job-admin这个文件夹下的配置文件即可: 创建数据库 执行sql…

如何防止公司内部人员有意或无意的把内部核心文件资料泄露,拷贝,打印,上传,社交工具等途径外泄?

防止公司内部人员有意或无意泄露核心文件资料&#xff0c;需要采取一系列综合性的管理和技术措施。 以下是一些有效的策略&#xff1a; 加强员工意识教育&#xff1a;定期举办信息安全培训&#xff0c;提高员工对数据保护的意识&#xff0c;让员工了解数据泄露的风险和后果&…

冯喜运:5.13黄金原油震荡整理是涨还是跌?今日走势分析

【黄金消息面分析】;自5月初以来&#xff0c;黄金和白银一直在享受需求的回归&#xff0c;买家在过去几天加大了力度&#xff0c;一度推动金价重返2370美元上方&#xff0c;白银重返28.5美元上方。不过&#xff0c;经过几天的盘整后&#xff0c;黄金白银价格双双下跌。然而&…

leetcode经典例题之环形队列

P. S.&#xff1a;以下代码均在VS2019环境下测试&#xff0c;不代表所有编译器均可通过。 P. S.&#xff1a;测试代码均未展示头文件stdio.h的声明&#xff0c;使用时请自行添加。 目录 1、题目展示2、问题分析3、完整代码展示4、结语 1、题目展示 在拿到题目时&#xff0c;通…

SSH常用功能介绍-高级功能

一、介绍 SSH&#xff08;Secure Shell&#xff09;是一种用于远程登录和执行命令的网络协议&#xff0c;它提供了加密的连接&#xff0c;保证了数据的安全性。除了基本的远程登录功能外&#xff0c;SSH还提供了许多高级功能&#xff0c;以下是一些常用的高级功能介绍&#xf…

26版SPSS操作教程(高级教程第二十章)

目录 前言 粉丝及官方意见说明 第二十章一些学习笔记 第二十章一些操作方法 神经网络与支持向量机 人工神经网络&#xff08;artificial neural network&#xff0c;ANN&#xff09; 假设数据 具体操作 结果解释 对案例的进一步分析 结果解释 ​编辑 尝试将模型复…

mmdetection在训练自己数据集时候 报错‘ValueError: need at least one array to concatenate’

问题&#xff1a; mmdetection在训练自己数据集时候 报错‘ValueError: need at least one array to concatenate’ 解决方法&#xff1a; 需要修改数据集加载的代码文件&#xff0c;数据集文件在路径configs/base/datasets/coco_detection.py里面&#xff0c;需要增加meta…

水经微图万能版、专业版与企业版的区别?

水经微图&#xff08;以下简称“微图”&#xff09;的版本&#xff0c;主要分为万能版、专业版和企业版三个版本。 什么是万能版&#xff1f; 万能版是指“水经注万能地图下载器”软件功能的授权&#xff0c;虽然该软件已经停止更新&#xff0c;但购买过该软件的用户&#xf…

简单的DbUtils工具类【精细】

目录 单条通用增删改方法 1.创建maven项目&#xff0c;并加载依赖 2.创建数据库连接工具类(Dbutils类) 3.创建一个执行器(SqlExecutor类) 4.通用(增&#xff0c;删&#xff0c;改)方法 1.创建方法 2.创建userInfo实体类 3.创建测试类&#xff0c;测试增&#xff0c;删&#xf…

leetcode-最长公共子序列(二)-103

题目要求 思路 step 1&#xff1a;优先检查特殊情况。 step 2&#xff1a;获取最长公共子序列的长度可以使用动态规划&#xff0c;我们以dp[i][j]dp[i][j]dp[i][j]表示在s1中以iii结尾&#xff0c;s2中以jjj结尾的字符串的最长公共子序列长度。 step 3&#xff1a;遍历两个字…

C++——缺省参数与重载函数

目录 ​前言 一.缺省参数 1.1缺省参数概念 1.2缺省参数分类 注意事项&#xff1a; 二.函数重载 2.1函数重载概念 2.2c支持函数重载原理——命名修饰 前言 本篇文章主要讲述c中有关于缺少参数与函数重载的相关概念与实例&#xff0c;以下是本人拙见&#xff0c;如有错误…

文件夹重命名高效批量技巧:轻松实现在文件夹名称左边添加关键字

在日常工作和生活中&#xff0c;我们经常需要对大量的文件夹进行重命名&#xff0c;以便更好地组织和管理文件。然而&#xff0c;手动一个接一个地修改文件夹名称既费时又费力。幸运的是&#xff0c;有一些高效的批量重命名技巧可以帮助我们快速实现这一目标&#xff0c;特别是…

算法学习笔记(3)-差分

#差分 差分和前缀和互为逆运算&#xff1a; 给定一个原数组s&#xff0c;差分数组h&#xff0c;两者的关系如下所示&#xff1a; s[i] h[1] h[2] h[3] …… h[i] 针对于上面的公式&#xff0c;由差分数组h推导而来 h[1] s[1] h[2] s[2] - s[1] h[3] s[3] - [2] …… h[…

vue前端时间段选择控件

实现效果: 可选具体的某天的某时某分某秒 vue前端代码: <el-form-item label"日期"><el-date-pickerv-model"daterangerq"style"width: 240px"value-format"yyyy-MM-dd HH:mm:ss"type"datetimerange"range-separat…

Spring,SpringMVC,SpringBoot知识总结

1.简述Spring,SpringMVC&#xff0c;SpringBoot各自特点及联系 Spring、Spring MVC 和 Spring Boot 是 Java 开发中常用的三个框架&#xff0c;它们之间有以下关系&#xff1a; Spring&#xff1a;是一个全功能的 JavaEE 应用程序框架。它提供了一系列的解决方案&#xff0c…

【管理咨询宝藏99】离散制造智能工厂战略规划方案

本报告首发于公号“管理咨询宝藏”&#xff0c;如需阅读完整版报告内容&#xff0c;请查阅公号“管理咨询宝藏”。 【管理咨询宝藏99】离散制造智能工厂战略规划方案 【格式】PDF版本 【关键词】智能制造、先进制造业转型、数字化转型 【核心观点】 - 推进EHS、品质一致性、生…

通配符证书260元

通配符SSL证书是一种特殊的数字证书&#xff0c;可以保护域名以及该域名下的所有子域名。不论是个人开发者还是企业开发者&#xff0c;只需要购买一个通配符SSL证书&#xff0c;就可以为多个子域名提供传输数据加密服务&#xff0c;降低了多子域名网站开发者购买SSL证书的成本。…