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

極客小將

您現(xiàn)在的位置是:首頁 » 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)的,你也試試吧...

主站蜘蛛池模板: 闸北区| 突泉县| 东兴市| 新巴尔虎左旗| 五莲县| 孟州市| 沙河市| 紫阳县| 大丰市| 舞阳县| 万盛区| 普格县| 武川县| 上虞市| 高青县| 重庆市| 遂平县| 宣城市| 扬州市| 陇南市| 汝州市| 德阳市| 光泽县| 玉屏| 冕宁县| 正宁县| 镇宁| 卓尼县| 隆安县| 刚察县| 建始县| 江西省| 彭水| 佛冈县| 中江县| 分宜县| 六安市| 巴楚县| 花垣县| 日照市| 江津市|