竹内纱里奈和大战黑人_欧美成人黄色小视频_91福利影视_欧美在线观看视频网站_h色网站免费观看_97综合

極客小將

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

資訊內容

用Scratch實現冒泡法排序—讓你的魚缸冒泡泡吧

極客小將2021-04-15-

upload/article/images/2021-04-15/b8e2f74dd9c73df9a7306ef261640d28.jpg

排序的方法有很多種,今天介紹一下“冒泡法”排序。

upload/article/images/2021-04-15/4334988a59a54477728e0b177e30f9e4.jpg

冒泡法排序的原理:對相鄰的元素進行兩兩比較,順序相反則進行交換。這樣,每一次會將最小或最大的元素“浮”到頂端,最終達到完全有序。

具體可參見上面的圖示。下面用Scratch進行實現。

程序實現:下圖是排序算法部分。

upload/article/images/2021-04-15/8dad131cc89ee2404aec000d223b5234.jpg

本例只對5個小球進行排序,所以循環上限是5次。

其中,列表“序號”中存放了需要排序的內容。變量i是外循環計數,循環次數為5;變量j是內循環計數,循環次數是5-i。


難點一:為什么內循環的次數是5-i?

l? 由于是兩兩進行比較,所以第一次比較時,只需要比較4次就可以了。而第一次運行時,外循環變量i=1,所以這時5-1=4;

l? 第二次執行內循環時,由于最大的已經冒泡到頂部,只剩下4個元素。這4個元素,也只要比較3次就可以。而這時外循環變量i=2,剛好5-2=3。后面的依次類推。


難點二:如何引用數組結構中的元素?

在Scratch中沒有提供“數組”這種數據結構,但是提供了“列表”。數組可以通過列表來實現。

例如,有數組A,它有5個元素。則每個元素分別為A(1)、A(2)、A(3)、A(4)和A(5)。有的編程語言數組的下標從0開始,有的從1開始。有的編程語言支持對數組的整體操作,有的只能一個元素一個元素的訪問。

Scratch中只有列表,所以只能通過下標,一個個的訪問。


?“交換”部分程序如下:

upload/article/images/2021-04-15/156a417ac14b833864aeb52bf66e555b.jpg

難點三:如何交換兩個數據?

在程序中,兩個變量必須通過第三個變量才能實現交換。因為在大部分編程語言中,等號的含義是“賦值”。

所以有的編程語言為了進行區分,將賦值號寫成“:=”的形式。例如:

upload/article/images/2021-04-15/bc9c09adbc8009152239dffd5af422c2.jpg

其含義是將100這個值賦予變量a。

因此直接寫成下列形式,是不能交換變量a和b的值的:

upload/article/images/2021-04-15/730f13b32e9097e9431fa37c6663b9c5.jpg

執行第一條語句時,將變量b的值賦予了變量a,這時變量a的值已經等于變量b了。所以執行第二條語句時,只是再一次把值賦予變量b。變量a的值丟失了。

通常采用中間變量來實現交換。例如:

upload/article/images/2021-04-15/9370375687f0bf21f8b11779d36db7d2.jpg

這里temp就是中間變量。注意其中的次序不能搞錯。


完整的視頻如下所示:


后記:在利用冒泡法排序時,如果某次循環中沒有發生交換,說明所有數據都已經排好了順序。這時可以中止循環,直接宣布排序結束。通常的做法是設置一個標志變量flag。開始時設置flag=0;當可以提前中止時,設置flag=1。Scratch語言中沒有break等中斷循環的命令,一般是設置一個快速變量。這樣條件判斷部分就變得稍微復雜一些。

下面是跟算法無關的一些內容,只是為了讓程序更有趣:

1、按住“R”鍵可以重置需要排序的序列。新的序列是隨機生成的。再次按“空格”鍵可以開始排序;

2、設計了一條小魚可以提供各種信息,例如“排序結束”等。為了讓我們的泡泡魚缸更生動形象,小魚會在魚缸中“漫步”。

3、為了更直觀的展示排序過程,對5個小球進行了編號。編號可以去掉,排序的泡泡也可以換成你希望的物品哦。

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

預約試聽課

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

主站蜘蛛池模板: 人人干人人草 | 欧美日韩国产免费 | 精品国产一区二区在线 | 国产精品成人av | 国产精品美女www | 在线播放av网站 | 无码日韩精品一区二区免费 | 粉嫩久久99精品久久久久久夜 | 中文字幕日韩电影 | 不卡一区二区在线 | 久久久久91 | 国产精品久久久久久久久久免费 | 久久精品国产亚洲一区二区三区 | 免费视频久久 | 欧美日韩电影 | 日日噜噜噜夜夜狠狠久久蜜桃 | 国产成人aaaa | 国产精品久久久久久久久免费高清 | 可以免费看av | 国产精品黄 | 在线观看av资源 | 在线免费看污 | 欧美一级二级三级 | 亚洲毛茸茸少妇高潮呻吟 | 国产视频a | 国产综合一区二区 | 中文字幕国产视频 | 国产毛片视频 | 在线播放国产一区二区三区 | 欧美日本片 | 91这里只有精品 | 海量av | 成人午夜在线视频 | 男女污视频在线观看 | 国产成人精品白浆久久69 | 中文字幕第九页 | 日韩av影片在线观看 | 精品日韩一区 | 亚洲一区二区中文 | 欧美精品在线一区二区三区 | 成人18视频在线观看 |