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 n?1元素和第個 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.pswp.cn/web/11179.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/11179.shtml
英文地址,請注明出處:http://en.pswp.cn/web/11179.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

單片機智能燈控制系統源程序仿真原理圖與論文全套資料

目錄 1、設計描述 2、仿真圖 3、程序 4、資料內容 資料下載地址&#xff1a;單片機智能燈控制系統源程序仿真原理圖與論文全套資料下載 1、設計描述 設計了一款智能控制系統。 AT89C51LCD1602DS1302按鍵LED組成了這樣一個完整的設計。 P2.0-P2.3 4個LED等代表庭院內的4…

計算機視覺——Opencv blobFromImage與torchvision實現數據標準化

1.blobFromImage blobFromImage 是 OpenCV 的深度神經網絡&#xff08;DNN&#xff09;模塊中的一個函數&#xff0c;它用于將圖像轉換為深度學習模型所需的輸入格式&#xff0c;主要是對傳入的圖像進行的轉換包括圖像尺寸調整、均值減法、縮放等預處理步驟&#xff0c;以便圖…

架構設計之學新而知故

緣由 因為一些特殊的機緣&#xff0c;接觸到洋蔥架構等一些新架構設計概念。 嘗試理解了一段時間&#xff0c;就想簡單梳理下對它們的理解&#xff0c;以達到學新而知故 &#x1f603; 信息增益 以前計算機專業并不設置通信領域的信息論的專業課程&#xff0c;但是&#xf…

輸出指定日期區間內的所有天、周、月

hutool獲取指定時間周幾 Slf4j public class DateWeekUtil {public static List<String> getDateWeek(String startDateString, String endDateString, List<Integer> codeList) {List<String> dateInfoList new ArrayList<>();List<Integer> v…

工作隨機:linux 掛載LVM管理模式的磁盤

文章目錄 前言一、創建一個分區二、創建PV三、創建VG四、創建LV五、格式化并掛載目錄 前言 在數據庫管理中&#xff0c;常有比較頭疼的問題&#xff0c;就是一段時間發展后我的磁盤空間不夠了&#xff0c;想要擴容原有的目錄很是頭疼&#xff0c;那么LVM管理的優勢就體現出來了…

JAVA學習-練習試用Java實現改寫字符串

問題&#xff1a; 鍵盤錄入一個字符串&#xff0c;將字符串中的大寫改成小寫&#xff0c;小寫改成大寫&#xff0c;數字改成。例如heLLO123,輸出后為HEllo** 解答思路&#xff1a; import java.util.Scanner;public class StringConversion {public static void main(String…

單元測試之JUnit5知識點總結及代碼示例

單元測試是軟件開發過程中的一種驗證手段&#xff0c;它針對最小的可測試部分&#xff08;通常是函數或方法&#xff09;進行檢查和驗證。其實單元測試還是挺重要的&#xff0c;不過國內很多公司的項目其實并沒有做好單元測試&#xff0c;或者根本就沒做單元測試&#xff0c;原…

英語復習之英語形近詞總結(四)

英語形近詞總結復習第四部分&#xff1a; 單詞 釋義例句 genuine 英 /?d?enju?n/ 美 /?d?enju?n/ adj.真實的&#xff0c;真正的&#xff1b;誠懇的 1.Only genuine refugees can apply for asylum. 只有真正的難民才能申請政治避難。 《牛津詞典》 2.This isnt a genui…

C++筆試強訓day19

目錄 1.小易的升級之路 2.禮物的最大價值 3.對稱之美 1.小易的升級之路 鏈接 模擬就行&#xff0c;唯一可能是難點得就是gcd&#xff08;最大公約數&#xff09; #include <iostream> using namespace std; #define int long long const int N 1e5 10; int arr[N];…

兒童懸吊訓練系統如何進行制動肌的動力訓練

兒童懸吊訓練系統進行制動肌的動力訓練&#xff0c;可以按照以下步驟進行&#xff1a; 評估&#xff1a;首先&#xff0c;治療師需要對兒童的制動肌進行評估&#xff0c;確定其穩定性和力量水平&#xff0c;從而制定合適的訓練計劃。 選擇訓練方式&#xff1a;根據評估結果&am…

利用IP地址查詢解決被“薅羊毛”的方法

在互聯網時代&#xff0c;隨著各種網絡詐騙手段的不斷更新和演變&#xff0c;“薅羊毛”成為了一種常見的網絡犯罪行為。其中&#xff0c;利用查詢IP地址進行欺詐活動已經成為一種普遍的手段。當個人或組織的IP地址被不法分子查詢后&#xff0c;可能會面臨虛假注冊、盜取個人信…

Python中的絕對路徑與相對路徑詳解

對路徑與相對路徑 Python中的絕對路徑與相對路徑詳解什么是路徑&#xff1f;絕對路徑優點&#xff1a;缺點&#xff1a;示例&#xff1a; 相對路徑優點&#xff1a;缺點&#xff1a;示例&#xff1a; Python中如何使用**重點內容**&#xff1a;**在Python中&#xff0c;建議使用…

AVL Cruise與Simulink聯合仿真(通過MATLAB DLL方式)

最近畢業設計需要用到AVL Cruise與Simulink進行聯合仿真&#xff0c;分析汽車模型的經濟性。下面介紹一下我所知的AVL Cruise與Simulink聯合仿真的幾種方式&#xff0c;它們各自的優缺點&#xff0c;以及DLL方式聯合仿真的具體配置過程。我這里用的MATLAB軟件版本是2021a&#…

有邊數限制的最短路

文章目錄 題目 有邊數限制的最短路算法分析1、問題&#xff1a;為什么Dijkstra不能使用在含負權的圖中&#xff1f;dijkstra詳細步驟2、什么是bellman - ford算法&#xff1f;3、bellman - ford算法的具體步驟4、在下面代碼中&#xff0c;是否能到達n號點的判斷中需要進行if(di…

水準網間接平差

目錄 一、原理概述二、案例分析三、代碼實現 一、原理概述 間接平差的函數模型和隨機模型為&#xff1a; L ^ B X ^ d D σ 0 2 Q σ 0 2 P ? 1 \hat{L}B\hat{X}d\\ D\sigma_0^2Q\sigma_0^2P^{-1} L^BX^dDσ02?Qσ02?P?1 誤差方程為&#xff1a; V B x ^ ? l VB\ha…

信息系統項目管理師0104:詳細可行性研究(7項目立項管理—7.2項目可行性研究—7.2.3詳細可行性研究)

點擊查看專欄目錄 文章目錄 7.2.3詳細可行性研究1.詳細可行性研究的依據2.詳細可行性研究的原則3.詳細可行性研究的方法4.詳細可行性研究的內容5.詳細可行性研究報告記憶要點總結7.2.3詳細可行性研究 詳細可行性研究是在項目決策前對與項目有關的技術、經濟、

智慧公廁:打造智能、安全、舒適的公共廁所新時代

隨著智慧城市建設的不斷推進&#xff0c;公共設施的智能化也已成為一種必然趨勢。在這一背景下&#xff0c;智慧公廁作為城市管理的一個重要方面&#xff0c;正逐漸走進人們的視野。通過對所在轄區內所有公共廁所的全域感知、全網協同、全業務融合以及全場景智慧的賦能&#xf…

如何訓練一個大模型:LoRA篇

目錄 寫在前面 一、LoRA算法原理 1.設計思想 2.具體實現 二、peft庫 三、完整的訓練代碼 四、總結 寫在前面 現在有很多開源的大模型&#xff0c;他們一般都是通用的&#xff0c;這就意味著這些開源大模型在特定任務上可能力不從心。為了適應我們的下游任務&#xff0c;…

使用Python構建一個簡單的圖書管理系統

Python是一種強大而靈活的編程語言&#xff0c;它可以用于構建各種類型的應用程序&#xff0c;包括圖書管理系統。在這篇文章中&#xff0c;我們將學習如何使用Python和一些常見的庫來創建一個簡單的圖書管理系統。 1. 設計數據庫模型 首先&#xff0c;我們需要設計數據庫模型…

【退役之重學 Java】初步認識 AQS

一、AQS 是什么 Abstract Queued Synchronizer &#xff0c;翻譯過來就是“抽象的排好隊的同步器”。 AQS 是一個用來構建鎖和同步器的框架。是用來構建鎖或者其他同步器組件的重量級基礎框架及整個JUC體系的基石&#xff0c;通過內置的FIFO隊列來完成線程獲取資源的排隊工作&…