嵌(qian)入式(shi)學科:冒泡排(pai)序
時間:2018-12-24 來源:華(hua)清遠見
說起(qi)冒泡(pao)排(pai)序,大(da)家對這個(ge)名詞一(yi)定很熟悉(xi),接觸(chu)過的人都知道,這是(shi)我們很常見(jian)的一(yi)個(ge)知識點(dian),也是(shi)我們筆(bi)試出現(xian)頻率(lv)很高的一(yi)個(ge)題,那下面我們一(yi)起(qi)來聊聊冒泡(pao)排(pai)序。
冒泡排序的原理:
1)比(bi)(bi)較(jiao)第一(yi)(yi)個數(shu)(shu)與(yu)第二個數(shu)(shu),若為(wei)逆序(xu)(xu)a[0]>a[1],則交(jiao)換(huan);然后(hou)比(bi)(bi)較(jiao)第二個數(shu)(shu)與(yu)第三個數(shu)(shu);依次類推(tui),直至第n-1個數(shu)(shu)和第n個數(shu)(shu)比(bi)(bi)較(jiao)為(wei)止——第一(yi)(yi)趟冒泡排序(xu)(xu),結(jie)果最(zui)大的數(shu)(shu)被安置在(zai)最(zui)后(hou)一(yi)(yi)個元素位置上
2)對(dui)前n-1個(ge)數進行第二趟(tang)冒泡排序,結(jie)果使次(ci)大(da)的數被安置(zhi)在(zai)第n-1個(ge)元素位置(zhi)
3)重復(fu)上述過(guo)程,共經過(guo)n-1趟冒泡排序后(hou),排序結束

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
我們(men)分析問題要結合圖示,這樣(yang)理(li)解(jie)起(qi)來更快哦。

