Scratch四级:第08讲 排序算法

第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分)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用LLaMA Factory来训练智谱ChatGLM3-6B模型

使用LLaMA Factory来训练智谱ChatGLM3-6B模型时&#xff0c;以下是一个训练过程&#xff1a; 1. 环境搭建 a. 安装Python和Anaconda 下载并安装适合你操作系统的Python版本&#xff08;推荐Python 3.10或更高版本&#xff09;。安装Anaconda&#xff0c;以管理Python环境和依…

“等保测评通过指南:打造企业安全生态环境“

等保测评&#xff0c;即网络安全等级保护测评&#xff0c;是企业构建安全生态环境的重要环节。以下是通过等保测评的指南&#xff0c;旨在帮助企业打造一个安全的网络环境&#xff1a; 理解等保测评的重要性&#xff1a; 等保测评是确保企业信息系统安全得到有效保护的重要标准…

轻松上手Spring AOP,掌握切面编程的核心技巧

文章目录 AOP 是什么AspectJSpring AOP切点表达式execution()语法结构示例注意事项 通知&#xff08;Advice&#xff09;类型如何使用准备阶段定义切面定义并使用切点测试 总结 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍…

轨迹规划 | 图解纯追踪算法Pure Pursuit(附ROS C++/Python/Matlab仿真)

目录 0 专栏介绍1 纯追踪算法原理推导2 自适应纯追踪算法(APP)3 规范化纯追踪算法(RPP)4 仿真实现4.1 ROS C仿真4.2 Python仿真4.3 Matlab仿真 0 专栏介绍 &#x1f525;附C/Python/Matlab全套代码&#x1f525;课程设计、毕业设计、创新竞赛必备&#xff01;详细介绍全局规划…

Android面试题之Kotlin和Java之间互操作

本文首发于公众号“AntDream”&#xff0c;欢迎微信搜索“AntDream”或扫描文章底部二维码关注&#xff0c;和我一起每天进步一点点 互操作性和可空性 要注意Java中所有类型都是可空的String!表示平台数据类型 public class JavaTest {public String generateName() {return …

瞬息全宇宙——平行宇宙终极教程,手把手教你做出百万点赞视频

最近一种叫“瞬息全宇宙”的视频火了&#xff0c;抖音一期视频百万赞&#xff0c;各个博主视频都在带瞬息全宇宙这个标签&#xff0c;于是就有很多朋友催我出教程了&#xff0c;在琢磨了几天之后&#xff0c;终于整出来了 教程包含了插件的安装&#xff0c;界面的讲解&#xff…

for 双重循环

一.双循环&#xff1a; 可以使用嵌套循环来实现脚本的双层循环&#xff0c;示例代码如下 1.显示外循环是$a 内循环$b encho -e \t 是制表符 2.9 9乘法表 for 循环&#xff1a; echo -n是不换行输出 while循环: 3.输出长度宽度都为9个星的矩形 for循环 while循环 …

开发者出海时都在用哪些组件库?

❝ 哈喽&#x1f44b;&#xff0c;我是树酱。今天我要介绍的是在开发者出海时经常使用的组件库。这些组件库大多采用Tailwind CSS作为基础&#xff0c;它们不仅风格独树一帜&#xff0c;而且外观也非常吸引人&#xff01; 1.Shadcn-ui shadcn的风格跟Notion风格很像&#xff0c…

博客互动革命:如何打造活跃读者社区并提升参与度

CSDN 的朋友你们好&#xff0c;我是未来&#xff0c;今天给大家带来专栏【程序员博主教程&#xff08;完全指南&#xff09;】的第 10 篇文章“与读者互动”。本文揭示了提升技术博客参与度的秘诀。从评论互动到社交媒体策略&#xff0c;本文将指导你如何建立强大的读者社区。掌…

编程技巧:什么是JavaScript递归

什么是递归 程序调用自身的编程技巧称为递归&#xff08;recursion&#xff09; 递归的基本思想是将一个复杂的问题分解成更小、更易于管理的子问题&#xff0c;这些子问题与原始问题相似&#xff0c;但规模更小。 递归的要素 基本情况&#xff08;Base Case&#xff09;&…

【C语言 | 数据结构】栈

文章目录 前言1、栈1.1栈的概念和定义1.1.2栈的基本概念&#xff1a; 1.2栈的方法(接口)1.3栈的实现方法1.4栈的性质1.5栈的应用1.6栈的结构 2、栈的实现2.1 顺序栈2.1.1 顺序栈的结构体2.1.2 顺序栈的初始化2.1.3 顺序栈的销毁2.1.4 顺序栈的入栈2.1.5 顺序栈的出栈2.1.5 顺序…

聚观早报 | 比亚迪海狮07 EV上市;苹果将升级Siri

聚观早报每日整理最值得关注的行业重点事件&#xff0c;帮助大家及时了解最新行业动态&#xff0c;每日读报&#xff0c;就读聚观365资讯简报。 整理丨Cutie 5月13日消息 比亚迪海狮07 EV上市 苹果将升级Siri OpenAI开发全新技术 沃尔沃EX30车型将上市 SpaceX计划新建发…

template——模板进阶(C++)

在之前的文章中&#xff0c;介绍了模板初阶&#xff1a;Cpp_桀桀桀桀桀桀的博客-CSDN博客 在本篇中将会对模板进一步的讲解。本篇中的主要内容为&#xff1a;非类型模板参数、函数模板的特化、类模板的特化&#xff08;其中包含全特化和偏特化&#xff09;&#xff0c;最后讲解…

【计算机网络篇】数据链路层(9)使用集线器的共享式以太网

文章目录 &#x1f6f8;使用同轴电缆的共享总线以太网 &#x1f386;使用集线器的共享式以太网&#x1f95a;集线器的特点 &#x1f354;10BASE-T星型以太网 &#x1f6f8;使用同轴电缆的共享总线以太网 若总线上的某个机械连接点接触不良或断开&#xff0c;则整个网络通信就不…

【前端工程化指南】Git常见操作之忽略文件

默认情况下&#xff0c;Git管理代码版本时会对所有文件进行跟踪&#xff0c;但有些时候我们并不希望项目中的一些文件上传到远程仓库或公共仓库中&#xff0c;例如密钥&#xff0c;个人隐私文件等。因此Git提供了两种忽略跟踪文件的方式.gitignore文本文件与git rm命令&#xf…

亿级流量下通用的高并发架构设计

既然是亿级用户应用&#xff0c;那么高并发必然是其架构设计的核心要素。 本文我们将介绍高并发架构设计的一些通用设计方案。 关键词&#xff1a;读/写分离、数据缓存、缓存更新、CQRS、数据分片、异步写 本文节选自电子工业出版社博文视点刚刚出版的《亿级流量系统架构设计…

Java随笔1

1.编程中组件的概念&#xff1a; 在编程中&#xff0c;组件&#xff08;Component&#xff09;通常指的是一种可重用的、模块化的代码单元&#xff0c;它封装了特定的功能或用户界面元素&#xff0c;并提供了与其他代码进行交互的接口。组件可以看作是对数据和方法的简单封装&…

ADS基础操作篇2

上篇文章《ADS基础介绍篇1》,对ADS界面,常用小工具及自带设计模板进行了介绍。ADS使用非常方便,含大量的控件和仿真模板。这篇文章我们主要讲解ADS的基础操作,包含Workspace、原理图、symbol的创建,仿真结果查看及优化。 1. 新建Workspace 添加名称及路径后,点击create…

共享充电宝语音芯片ic方案支持远程4g无线更新语音

一、简介 共享充电宝语音芯片ic方案支持远程4g无线wifi蓝牙更新语音 共享充电宝已经是遍布在大街小巷的好产品&#xff0c;解决了携带充电宝麻烦的痛点 但是很多的共享充电宝在人机交互方便&#xff0c;还做得不够好&#xff0c;比如&#xff1a;借、还设备没有语音提示&…

基于SSM的计算机课程实验管理系统的设计与实现(源码)

| 博主介绍&#xff1a;✌程序员徐师兄、8年大厂程序员经历。全网粉丝15w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f44…