国产日韩欧美一区二区三区综合,日本黄色免费在线,国产精品麻豆欧美日韩ww,色综合狠狠操

極客小將

您現在的位置是:首頁 » scratch編程資訊

資訊內容

教程資源|Scratch不能實現冒泡法和選擇法排序?

極客小將2020-11-17-
排序是程序設計中重要的算法之一,比較基礎的排序方法有冒泡法和選擇法,今天我們用Scratch制作一個模擬冒泡法和選擇法排序的程序。讓我們先看看運行效果吧。 一、效果預覽 點擊小綠旗運行后,舞臺區生產40個大小不

排序是程序設計中重要的算法之一,比較基礎的排序方法有冒泡法和選擇法,今天我們用Scratch制作一個模擬冒泡法和選擇法排序的程序。讓我們先看看運行效果吧。

一、效果預覽

點擊小綠旗運行后,舞臺區生產40個大小不同的紅色棒圖。根據提示按下鍵盤上的空格鍵可以通過輸入1或2選擇冒泡法排序和選擇法排序。如果輸入1,紅色棒圖按照冒泡法排序的規則從小到大排列;如果輸入2,紅色棒圖按照選擇法排序的規則從小到大排列。效果如圖1所示。

https://cdn.china-scratch.com/timg/191130/104T54040-0.gif

圖1 程序運行效果

二、冒泡法和選擇法排序簡介

1.冒泡法

冒泡排序(Bubble Sort),是一種計算機科學領域的較簡單的排序算法。它重復地走訪過要排序的元素列,依次比較兩個相鄰的元素,如果順序與目標不符,就把他們交換過來。走訪元素的工作是重復地進行直到沒有相鄰元素需要交換,也就是說該元素列已經排序完成。

這個算法的名字由來是因為越小的元素會經由交換慢慢“浮”到數列的頂端(升序或降序排列),就如同碳酸飲料中二氧化碳的氣泡最終會上浮到頂端一樣,故名“冒泡排序”。

冒泡排序時,如果兩個元素相等,是不會再交換的;如果兩個相等的元素沒有相鄰,那么即使通過前面的兩兩交換把兩個相鄰起來,這時候也不會交換,所以相同元素的前后順序并不會改變,所以冒泡排序是一種穩定排序算法。

2.選擇法排序

選擇排序(selection sort),另外一種計算機科學領域的較簡單的排序算法。工作原理是每一次從待排序的數據元素中選出最小(或最大)的一個元素,存放在序列的起始位置或者末尾,然后,再從剩余未排序元素中繼續尋找最?。ù螅┰兀缓蠓诺揭雅判蛐蛄械钠鹗嘉恢没蛘吣┪病R源祟愅疲钡饺看判虻臄祿嘏磐辍?

這種算法排序過程需要反復從未排序元素中選擇最大或者最小元素,直至完成排序。因此,將這種算法稱為選擇排序算法。

由于在選擇的過程中,相同的元素有可能改變初始排列順序,所以選擇排序是不穩定的。

三、程序制作過程

首先,從庫中選擇一個合適的背景圖。然后需要導入紅色線條素材,作為棒圖角色(也可以繪制),然后再建立一個空白角色。設置完成后的背景和角色如圖4所示,另外還導入一個合適的聲音素材,作為排序完成后的提示音。

upload/article/images/2020-11-17/5d4ad931d8c73439f855fda0174815ea.jpg

圖2 程序角色列表

接下來就是制作程序積木塊了。在制作程序積木塊前,先設置如圖3所示變量。其中,克隆體編號、克隆體大小為棒圖角色的私有變量。

upload/article/images/2020-11-17/3db0a6e9c5fc3335f241a432d57bdb15.jpg

圖3 程序中設置的變量

為了存放棒圖角色克隆體的編號和大小數據,設置了兩個列表,如圖4所示。其中,克隆體編號列表用于存放克隆體的編號;隨機數列表用于存放克隆體的大小。

upload/article/images/2020-11-17/2d4e69c90fba6fe73dfc037786265709.jpg

圖4 程序中設置的列表

背景中的腳本主要用于程序初始化,如圖5所示

upload/article/images/2020-11-17/181667651e3287c8d34fc2267df6f5f9.jpg

圖5 背景中腳本

空白角色中主要有[當小綠旗被點擊]事件下的腳本和[當按下空格鍵]事件下的腳本,如圖6和圖7所示,另外[當按下空格鍵]事件下的腳本中還用到了自定義積木,其功能如圖8和圖9所示。

upload/article/images/2020-11-17/9ab0ae34eb51fbc61130f651b09a90f7.jpg

圖6 空白角色[當小綠旗被點擊]事件下的腳本

upload/article/images/2020-11-17/75a12ca5bd6eb92366dee270c67e7b49.jpg

圖7空白角色[當按下空格鍵]事件下腳本

upload/article/images/2020-11-17/a4c436b255b7a1d3b2e92bf9a8a33d06.jpg

圖8 尋找最大值自定義積木

upload/article/images/2020-11-17/7f379a2dd04faedfe9ea63086ce01ed1.jpg

圖9 尋找最大值項自定義積木

棒圖角色中腳本有[當接收到生成克隆體]事件下腳本、[當作為克隆體啟動時]事件下腳本、[當接收移動克隆體冒泡法]事件下腳本、[當接收移動克隆體選擇法]事件下腳本,分別如圖10-13所示。

upload/article/images/2020-11-17/e12a7ad246e153903a113efd8fc1aefb.jpg

圖10 棒圖角色[當接收到生成克隆體]事件下腳本

upload/article/images/2020-11-17/3060dfebc7960bc402800c52529e41bb.jpg

圖11 棒圖角色[當作為克隆體啟動時]事件下腳本

upload/article/images/2020-11-17/6ba22fe88b27dc34e3bdc15f4b8f32ee.jpg

圖12 棒圖角色[當接收到移動克隆體冒泡法]事件下腳本

upload/article/images/2020-11-17/b10ccc158c454888186be0af6fb71ecc.jpg

圖13 棒圖角色[當接收到移動克隆體選擇法]事件下腳本

四、測試與總結

通過測試發現,冒泡排序法和選擇排序法運行正常,可以直觀地觀察到排序的過程。本案例綜合運用變量、列表和克隆的相關技巧模擬了冒泡排序和選擇排序過程,適合具有一定編程基礎的編程愛好者和小朋友學習。通過本案例的制作,可以進一步加深對變量積木、列表積木、克隆體操作積木、過程控制積木等的理解,有利于更熟練掌握它們的使用方法。制作時需要注意,克隆體編號和克隆體大小兩個變量必須設置為“僅適用當前角色”。

聲明:本文章由網友投稿作為教育分享用途,如有侵權原作者可通過郵件及時和我們聯系刪除

預約試聽課

已有385人預約都是免費的,你也試試吧...

主站蜘蛛池模板: 辉南县| 桑日县| 新龙县| 疏附县| 水城县| 曲阳县| 寻乌县| 佛教| 突泉县| 固始县| 利川市| 揭西县| 乌鲁木齐市| 南宫市| 石景山区| 昌黎县| 日土县| 海口市| 成武县| 克东县| 鲁甸县| 枣强县| 陆良县| 余姚市| 刚察县| 永平县| 杭锦后旗| 桃源县| 个旧市| 哈密市| 南安市| 蕉岭县| 灵武市| 黄大仙区| 板桥市| 古浪县| 广宁县| 汶上县| 全椒县| 阿克陶县| 法库县|