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

2022-10-13 06:37

C語言中編程中的冒泡排序法,最好給一個例子~~~
2個回答
其實很簡單,就是一個一個進(jìn)行對比如果ab就把兩個變量進(jìn)行交換,使得最大/最小的排在前面。
2 4 3 5 1 五個數(shù)
2<4 交換成為 42351
2<3 成為 43251
2<5 成為 43521
2>1 不交換 43521
然后最小的1就一定會在最后
然后比較前4個數(shù),4>3,3<5(交換),3>2;
成為45321,
前3個數(shù)4<5(交換),4>3
就成為了54321
這是一個巧合的例子,程序應(yīng)該還要比較前兩個數(shù)
5>4
最后成為54321。
以下是樣例程序。

#include
int main()
{
int a[5]={2,4,3,5,1};
int i,j,t; //i,j是計數(shù)器,t用作交換
for(i=0;i<5;i++)
{
for(j=0;j<5-i-1;j++)
{
if(a[j] {
t=a[j];
a[j]=a[j+1];
a[j+1]=t; //就把兩個數(shù)交換
}
}
}
printf("%d %d %d %d %d\n",a[0],a[1],a[2],a[3],a[4]);
return 0; //程序正常結(jié)束
}

你懂了么?
比如有一組數(shù)為12,23,1,4,2,6。需要使用冒泡排序方法使這組數(shù)從小到大排列。首先12和23比較,12<23,則位置不變;接著23和1比較,因為23>1,所以交換23和1的位置,這組數(shù)這時是12 1 23 4 2 6;然后比較23和4,因為23>4,所以交換23和4,這組數(shù)變?yōu)?2 1 4 23 2 6;然后比較23和2,23>2,再交換,變?yōu)?2 1 4 2 23 6;然后比較23和6,23>6,再交換,最后為12 1 4 2 6 23。這就叫經(jīng)過了一趟排序,即相鄰兩數(shù)比較,大的放在后面,經(jīng)過一趟排序后,最大的數(shù)就冒泡到最后面了。然后再對前n-1個數(shù)進(jìn)行第二趟排序,排序后第二大的數(shù)就放在了第n-1個位置;最后經(jīng)過n-1趟排序后整個數(shù)組就有序了。
相關(guān)問答
什么叫冒泡排序
5個回答2022-09-26 22:07
舉個例子: 比如說有一組數(shù)組:1,6,3,9,7,4 想要給它做排序,把這個數(shù)組從小到大的排列 這里就可以使用冒泡算法(就像河里的泡向上冒,小的泡會在大的泡的上面一樣) 這里冒泡排序就是小的數(shù)字一個...
全文
冒泡排序
1個回答2023-08-09 09:10
要看你的冒泡法是升序還是降序,不過大體都是一樣的,主要就是那兩個for循環(huán)那里的問題。我這里用的降序: #include void main() { int n[10]; int i,...
全文
冒泡排序法
1個回答2022-07-27 23:50
用冒泡排序法對n個關(guān)鍵碼排序,在最好的情況下也就是數(shù)據(jù)按關(guān)鍵碼排序次序有序,只需要依次從頭到尾挨個比較就可以了,因此比較次數(shù)為n-1次,關(guān)鍵碼不移動,所以0次移動 在最壞的情況下為關(guān)鍵碼按排序順序完全...
全文
冒泡排序法是什么
1個回答2023-08-09 09:10
冒泡排序,是指計算機(jī)的一種排序方法,它的時間復(fù)雜度為O(n^2),雖然不及堆排序、快速排序的O(nlogn,底數(shù)為2),但是有兩個優(yōu)點:1.“編程復(fù)雜度”很低,很容易寫出代碼;2.具有穩(wěn)定性,這里的穩(wěn)...
全文
什么叫冒泡排序法
2個回答2023-01-24 10:50
冒泡排序,是指計算機(jī)的一種排序方法,它的時間復(fù)雜度為O(n^2),雖然不及堆排序、快速排序的O(nlogn,底數(shù)為2),但是有兩個優(yōu)點:1.“編程復(fù)雜度”很低,很容易寫出代碼;2.具有穩(wěn)定性,這里的穩(wěn)...
全文
什么叫做冒泡排序?
1個回答2022-09-30 22:22
冒泡排序★★★★★★ #include #define N 5 void main() { int i,j; int grade[N],temp; printf("輸入5個數(shù)\n"); ...
全文
“冒泡排序法”是什么?
2個回答2022-10-04 10:21
冒泡排序詳細(xì)注釋: /* 用冒泡排序法對一維整型數(shù)組中的十個數(shù)升序排序 */ #include #include int main() { int i,j,t,a[10]; printf...
全文
排序 排序
1個回答2024-01-22 14:07
2 4 3 6 1 5
冒泡排序代碼?
1個回答2023-01-05 06:41
for(int i =0;i < score.length - 1;i++) { for(int j = 0;j < score.length - 1-i;j++)// j開始等于0, { if(s...
全文
冒泡排序算法
1個回答2022-09-17 16:40
冒泡排序,是指計算機(jī)的一種排序方法,它的時間復(fù)雜度為O(n^2),雖然不及堆排序、快速排序的O(nlogn,底數(shù)為2),但是有兩個優(yōu)點:1.“編程復(fù)雜度”很低,很容易寫出代碼;2.具有穩(wěn)定性,這里的穩(wěn)...
全文
熱門問答