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

極客小將

您現(xiàn)在的位置是:首頁(yè) » scratch編程資訊

資訊內(nèi)容

C++結(jié)合Scratch學(xué)習(xí)排序之冒泡排序

極客小將2021-02-04-
冒泡排序 冒泡排序是一個(gè)比較經(jīng)典和簡(jiǎn)單的排序算法,利用Scratch編程,我們可以比較清楚的、直觀的觀看排序的過程,同時(shí)也便于理解算法本身。 ??? 什么是冒泡排序呢?把第一個(gè)元素與第二個(gè)元素比較,如果第一

冒泡排序

冒泡排序是一個(gè)比較經(jīng)典和簡(jiǎn)單的排序算法,利用Scratch編程,我們可以比較清楚的、直觀的觀看排序的過程,同時(shí)也便于理解算法本身。

??? 什么是冒泡排序呢?把第一個(gè)元素與第二個(gè)元素比較,如果第一個(gè)比第二個(gè)大,則交換他們的位置。接著繼續(xù)比較第二個(gè)與第三個(gè)元素,如果第二個(gè)比第三個(gè)大,則交換他們的位置……(你看那水中的魚,他們時(shí)不時(shí)地吐出泡泡,那泡泡越往上走就會(huì)越大)。我們對(duì)每一對(duì)相鄰元素作同樣的工作,從開始第一對(duì)到結(jié)尾的最后一對(duì),這樣一趟比較交換下來之后,排在最右的元素就會(huì)是最大的數(shù)。除去最右的元素,我們對(duì)剩余的元素做同樣的工作,如此重復(fù)下去,直到排序完成。

upload/article/images/2021-02-04/630ac62943e1f2d42c706886aff8f070.jpg

比如9,5,6,8,2,7,3,4,1這組數(shù)據(jù),要將它按照從小到大的順序排列起來。首先想到將第一個(gè)數(shù)A與后面的數(shù)比較如果后面的數(shù)比較大,那么這兩個(gè)數(shù)的順序是正確的。將當(dāng)前A更新成后面較大的數(shù),然后再與后面的比較。遇到比自己小的進(jìn)行交換,但是不更新A。

如例:

1.第一次比較,9是最大的,執(zhí)行后9,5,6,8,2,7,3,4,1

2.第二次比較,5比9小,執(zhí)行后5,9,6,8,2,7,3,4,1

3.第三次比較,6比9小,比5大,執(zhí)行后5,6,9,8,2,7,3,4,1

4.第四次比較,8比9小,比6大,執(zhí)行后5,6,8,9,2,7,3,4,1

5.第五次比較,2比9小,比568都小,執(zhí)行后2,5,6,8,9,7,3,4,1

6.第六次比較,7比89小,比6大,執(zhí)行后2,5,6,7,8,9,3,4,1

7.第七次比較,3比56789小,比2大,執(zhí)行后2,3,5,6,7,8,9,4,1

8.第八次比較,4比56789小,比3大,執(zhí)行后2,3,4,5,6,7,8,9,1

9.第九次比較,1最小,執(zhí)行后1,2,3,4,5,6,7,8,9

C++代碼如下:

#include

using namespace std;

void bubbleSort(int* pData,int length)

{

??? int temp;

??? for(int i =0; i != length; ++i)

??? {

??????? for (intj = 0; j != length; ++j)

??????? {

??????????? if(pData[i] < pData[j])

??????????? {

???????????????temp = pData[i];

???????????????pData[i] = pData[j];

???????????????pData[j] = temp;

??????????? }

??????? }

??? }

}

void print(int* pData,int length)

{

??? for (int i =0; i != length; ++i)

??? {

??????? cout<< pData[i] << " ";

??? }

??? cout <<endl;< p="">

}

int main(){

int pData[] = {9,5,6,8,2,7,3,4,1};

??? ?? bubbleSort(pData,9);

??? ?? cout << "the result is:";

??? ?? print(pData,9);

??? ?? return 0;

}

下面介紹一下用Scratch完成冒泡排序

用Scratch寫這個(gè)程序可以用編程的方式把冒泡算法完美的演示一遍。你可以看到每一步程序的執(zhí)行。排序先從最下面開始,一步一步進(jìn)行交替比較,發(fā)現(xiàn)下面的數(shù)字比上面大,就通過臨時(shí)變量來進(jìn)行數(shù)據(jù)隊(duì)列里面的交換。(隊(duì)列里面的數(shù)據(jù)交換位置需要有臨時(shí)變量來做數(shù)據(jù)交換時(shí)的臨時(shí)存放)。

通過這個(gè)程序,小朋友就可以很容易和直觀的理解冒泡算法。

學(xué)編程,算法是很重要的一部分,也是真正鍛煉思維的部分,所以NOIP的比賽就是考算法,雖然建議算法可以等到上初中再去學(xué),小學(xué)玩玩就好,但是還是可以通過Scratch接觸一些算法的概念會(huì)比較好。否則上初中開始直接用C++做算法會(huì)很吃力的。

今天我們會(huì)介紹兩種scratch實(shí)現(xiàn)的方式:

第一種:

upload/article/images/2021-02-04/4bc1157441326acbd9f15dc482582d57.jpg

upload/article/images/2021-02-04/0c2d78537d6b9b81f4213fb38236f329.jpg

第二種:

upload/article/images/2021-02-04/70829840af697e4cc5528a1448ce3a49.jpg

upload/article/images/2021-02-04/a2d77162f0b516a655c670acbee01e0a.jpg

大家自己去欣賞程序和代碼吧,畢竟讀懂程序也是編程的一個(gè)基本技能,最好還要?jiǎng)邮謱?shí)踐一下!

聲明:本文章由網(wǎng)友投稿作為教育分享用途,如有侵權(quán)原作者可通過郵件及時(shí)和我們聯(lián)系刪除

預(yù)約試聽課

已有385人預(yù)約都是免費(fèi)的,你也試試吧...

主站蜘蛛池模板: 湟中县| 衢州市| 尚志市| 肥城市| 界首市| 忻州市| 淮南市| 溆浦县| 泸州市| 延安市| 西昌市| 武冈市| 洪江市| 东乡县| 宝山区| 图们市| 右玉县| 青海省| 五大连池市| 济阳县| 昔阳县| 青浦区| 会昌县| 九龙城区| 浏阳市| 南丹县| 贵德县| 龙里县| 石柱| 德令哈市| 翁牛特旗| 彩票| 台中县| 井研县| 合川市| 柳林县| 乌拉特前旗| 游戏| 临沧市| 濮阳县| 曲水县|