怎麼做氣泡排序?氣泡排序法是如何排序的???

時間 2023-03-26 02:40:05

1樓:青檬護膚

具體**如下:

從小到大排序。

#include

void main()

int a[10],i,j,k,temp;

printf("輸入10個數");

for(i=0;i<10;i++)

scanf("%d",&a[i]);輸入10個數,初始化陣列。

for(i=0;i<9;i++)

for(j=i+1;j<10;j++)用陣列中第i個數和i後面的數作比較,第一次(i=0時)找。

//出最小的,第二次(i=1時)找出第二小的。以此類推。

//就像冒泡一樣。

if(a[j]temp=a[i];

a[i]=a[j];

a[j]=temp; /交換a[j]和a[i]printf("the sorted number:")

for(k=0;k<10;k++)輸出排序後的陣列。

printf("%d\t",a[k]);

printf(""

執行結果如下。

氣泡排序法是如何排序的???

2樓:隨便什麼名啦啦

氣泡排序演算法的原理:

1、比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。

2、對每一對相鄰元素做同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。

3、針對所有的元素重複以上的步驟,除了最後一個。

4、持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。

3樓:飛鷹

它重複地走訪過要排序的元素列,依次比較兩個相鄰的元素,如果他們的順序(如從大到小、首字母從a到z)錯誤就把他們交換過來。走訪元素的工作是重複地進行直到沒有相鄰元素需要交換,也就是說該元素列已經排序完成。

這個演算法的名字由來是因為越小的元素會經由交換慢慢「浮」到數列的頂端(升序或降序排列),就如同碳酸飲料中二氧化碳的氣泡最終會上浮到頂端一樣,故名「氣泡排序」。

4樓:匿名使用者

用兩層迴圈,比較兩個數大小,按要求,大數或者小數在前排序,注意二層迴圈中,j=i

5樓:匿名使用者

冒泡就是大的數,比較之後放到最前面,一次類推。

6樓:網友

其實很簡單,就是一個一個進行對比如果ab就把兩個變數進行交換,使得最大/最小的排在前面。

2 4 3 5 1 五個數。

2<4 交換成為 42351

2<3 成為 43251

2<5 成為 43521

2>1 不交換 43521

然後最小的1就一定會在最後。

然後比較前4個數,4>3,3<5(交換),3>2;

成為45321,前3個數4<5(交換),4>3

就成為了54321

這是一個巧合的例子,程式應該還要比較前兩個數5>4

最後成為54321。

以下是樣例程式。

#include

int main()

;int i,j,t; /i,j是計數器,t用作交換for(i=0;i<5;i++)

printf("%d %d %d %d %d",a[0],a[1],a[2],a[3],a[4]);

return 0; /程式正常結束。

}你懂了麼?

7樓:我愛涮涮鍋

比如有一組數為12,23,1,4,2,6。需要使用氣泡排序方法使這組數從小到大排列。首先12和23比較,12<23,則位置不變;接著23和1比較,因為23>1,所以交換23和1的位置,這組數這時是12 1 23 4 2 6;然後比較23和4,因為23>4,所以交換23和4,這組數變為12 1 4 23 2 6;然後比較23和2,23>2,再交換,變為12 1 4 2 23 6;然後比較23和6,23>6,再交換,最後為12 1 4 2 6 23。

這就叫經過了一趟排序,即相鄰兩數比較,大的放在後面,經過一趟排序後,最大的數就冒泡到最後面了。然後再對前n-1個數進行第二趟排序,排序後第二大的數就放在了第n-1個位置;最後經過n-1趟排序後整個陣列就有序了。

C 下用氣泡排序法排列數,C 下用氣泡排序法排列10個數

乾珈藍佑 將你的 中 for j 9,q 1 q n k j q 的n改為10就可以了 for j 9,q 1 q 10 k j q 改為10以後,程式就沒有問題了 你的main函式顯示有問題,顯示的aa.display 在排序的aa.sortnum 之前了,那樣顯示的是排序前的順序,在aa.sor...

vb用氣泡排序法實現對陣列中含有元素隨機

這個要動態演示排序過程麼?還是直接顯示排序的結果? private sub command1 click dim a 1 to 10 i j,s as integerrandomize for i 1 to 10 隨機10個產生1 100的整數 a i int rnd 100 1next i for...

C語言問題求解如圖謝謝氣泡排序法這個j10 i 1為什麼j要小於N i?是什麼意思

再醉不逍遙 裡面的for迴圈完成一次迴圈,就將最大值轉移到最後,那麼下一次 外面for 就要排除最後已經得到的最大值,在剩下的值中再次得到最大值並轉移到最後。每一次冒泡後,都要少比較一個資料,比如 4 5 2 1 一次冒泡得 4 2 1 5 二次冒泡得 這時只要遍歷3個 4 2 1 2 1 4 51...