氣泡排序法是如何排序的

時間 2021-07-01 01:31:31

1樓:隨便什麼名啦啦

氣泡排序演算法的原理:

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

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

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

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

2樓:飛鷹

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

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

3樓:溜到被人舔

氣泡排序演算法的原理如下:

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

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

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

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

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\n",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趟排序後整個陣列就有序了。

輸入10個數,用氣泡排序法按由小到大順序排序並輸出??c語言的

8樓:萬能導師

如下參考:

#包括< stdio, h >

intmain()

{inta[10]={0};

inti=0,j=0,t=0;

for (i = 0;我

< 10;我+ +)

for (i = 0;我< 10;我+ +){for (j = 0;j < 10 - i;j + +) {if (a > [j] a [j + 1)){t=a,[j]。

a[j]=a,a+1加到[j]。

a[m+1]=t;

}}}for (i = 0;我< 10;我+ +){printf("%d",a[i]);}

返回0;}

任意輸入10個資料,程式執行:

擴充套件資料:氣泡排序演算法的複雜原理如下:

1.比較相鄰metaelements。如果第一個比第二個大,就交換它們。

2.對每一對相鄰的元素執行相同的操作,從第一對開始,到最後一對結束。此時,最後一個元素應該是最大的數。

3.對除最後一個元素之外的所有元素重複上述步驟。

4.每次對越來越少的元素重複上述步驟,直到沒有一對數字可供比較。

9樓:路堯家的顧小言

氣泡排序的程式**

如下:#include

int main()

;int i=0,j=0,t=0;

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

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

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

return 0;}

任意輸入十個資料,程式執行結果:

10樓:匿名使用者

#include

void main()

;int i=0,j=0,c=0;

printf("請輸入10個數

:\n");

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

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

printf("該十個數從小到大排序為:\n");

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

11樓:匿名使用者

1 輸入;

2 排序;

3 輸出。

參考**如下:

#include

int main()

}for(i = 0; i < 10; i ++)//輸出。

printf("%d,",&a[i]);

printf("\n");

return 0;}

12樓:匿名使用者

#include

#define n 10

void main()

if(!flag) break;

}printf("\n排序後陣列為:\n");

for(int j=0;j

printf("s[%d]=%d\n",j,s[j]);}

13樓:匿名使用者

#include

#include

/*對輸入的10個數,用冒泡排

序法按由小到大順序排序*/

void sort(int array[10])}}}void main()

14樓:匿名使用者

#include

#define maxn 10

int main()

for (i = 0; i < maxn; i++)printf(i == maxn - 1 ? "%d\n" : "%d ", arr[i]);

return 0;}

C氣泡排序,c 關於氣泡排序法的簡單程式碼

如下 class program static void main string args 個同學的分數 i array i 1 int.parse console.readline sort array console.writeline n 成績排序結果如下 for int i 0 i arra...

關於C語言氣泡排序法要詳解,C語言氣泡排序法

牧念露 include void main int i,j,k for i 0 i 8 i for j 0 j 10 j for j 0 j 9 j for j 0 j 10 j 9在j 9 中 printf n getch 陣列元素進行比較的時候,下標不對。include void main in...

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...