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;} 如下 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... 牧念露 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... 乾珈藍佑 將你的 中 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...C氣泡排序,c 關於氣泡排序法的簡單程式碼
關於C語言氣泡排序法要詳解,C語言氣泡排序法
C 下用氣泡排序法排列數,C 下用氣泡排序法排列10個數