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

極客小將

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

資訊內容

C++結合Scratch學習排序之冒泡排序

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

冒泡排序

冒泡排序是一個比較經典和簡單的排序算法,利用Scratch編程,我們可以比較清楚的、直觀的觀看排序的過程,同時也便于理解算法本身。

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

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

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

如例:

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

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

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

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

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

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

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

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

9.第九次比較,1最小,執行后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寫這個程序可以用編程的方式把冒泡算法完美的演示一遍。你可以看到每一步程序的執行。排序先從最下面開始,一步一步進行交替比較,發現下面的數字比上面大,就通過臨時變量來進行數據隊列里面的交換。(隊列里面的數據交換位置需要有臨時變量來做數據交換時的臨時存放)。

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

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

今天我們會介紹兩種scratch實現的方式:

第一種:

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

大家自己去欣賞程序和代碼吧,畢竟讀懂程序也是編程的一個基本技能,最好還要動手實踐一下!

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

預約試聽課

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

主站蜘蛛池模板: 宾川县| 通化县| 巧家县| 偏关县| 中西区| 定陶县| 永兴县| 井冈山市| 肇庆市| 诸城市| 五原县| 柘荣县| 平山县| 开化县| 邛崃市| 大洼县| 肇庆市| 永德县| 苏尼特左旗| 巴彦淖尔市| 盘山县| 漳浦县| 通城县| 章丘市| 巴东县| 铜鼓县| 义乌市| 界首市| 奎屯市| 吉木乃县| 黔南| 彩票| 西城区| 丹棱县| 桂阳县| 伽师县| 内乡县| 湄潭县| 山西省| 南汇区| 乐业县|