當(dāng)前位置:首頁(yè) > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 講師博文 > 嵌入式學(xué)科:冒泡排序
嵌入式學(xué)科:冒泡排序
時(shí)間:2018-12-24 來(lái)源:華清遠(yuǎn)見(jiàn)
說(shuō)起冒泡排序,大家對(duì)這個(gè)名詞一定很熟悉,接觸過(guò)的人都知道,這是我們很常見(jiàn)的一個(gè)知識(shí)點(diǎn),也是我們筆試出現(xiàn)頻率很高的一個(gè)題,那下面我們一起來(lái)聊聊冒泡排序。
冒泡排序的原理:
1)比較第一個(gè)數(shù)與第二個(gè)數(shù),若為逆序a[0]>a[1],則交換;然后比較第二個(gè)數(shù)與第三個(gè)數(shù);依次類(lèi)推,直至第n-1個(gè)數(shù)和第n個(gè)數(shù)比較為止——第一趟冒泡排序,結(jié)果最大的數(shù)被安置在最后一個(gè)元素位置上
2)對(duì)前n-1個(gè)數(shù)進(jìn)行第二趟冒泡排序,結(jié)果使次大的數(shù)被安置在第n-1個(gè)元素位置
3)重復(fù)上述過(guò)程,共經(jīng)過(guò)n-1趟冒泡排序后,排序結(jié)束

C代碼:
1 #include <stdio.h>
2
3 int main()
4 {
5 int a[11],i,j,t;
6
7 printf("Input 10 numbers:\n");
8 for(i = 1; i < 11; i++)
9 scanf("%d",&a[i]);
10 printf("\n");
11
12 for(j = 1; j <= 9; j++)
13 {
14 for(i = 1; i <= 10 - j; i++)
15 if(a[i] > a[i+1])
16 {
17 t = a[i];
18 a[i] = a[i+1];
19 a[i+1] = t;
20 }
21 }
22 printf("The sorted numbers:\n");
23 for(i = 1; i < 11; i++)
24 printf("%d ",a[i]);
25 return 0;
26 }
27
我們分析問(wèn)題要結(jié)合圖示,這樣理解起來(lái)更快哦。
華清遠(yuǎn)見(jiàn)90+項(xiàng)目獲批!教育部2021最新協(xié)同育人項(xiàng)目名
華清遠(yuǎn)見(jiàn)榮獲2021騰訊教育“年度口碑影響力職業(yè)教育品
華清遠(yuǎn)見(jiàn)受邀參加2021年武漢民辦高校信息學(xué)科合作聯(lián)盟
溫暖同行共創(chuàng)佳績(jī) 2019華清遠(yuǎn)見(jiàn)北京總部年會(huì)大曝光
助力高校AI人工智能學(xué)科建設(shè) 華清遠(yuǎn)見(jiàn)人工智能師資班
華清遠(yuǎn)見(jiàn)受邀參加四川省物聯(lián)網(wǎng)年會(huì),榮獲優(yōu)秀企業(yè)專(zhuān)家