排序演算法之 氣泡排序

2022-06-21 12:42:11 字數 1241 閱讀 1534

1.演算法思想(參考:

通過對待排序的序列從前向後依次比較相鄰元素的值,如果發現逆序則交換。

逆序的含義:如果想把序列從小到大排序,那麼兩個數中前面的比後面的大就是逆序。

若需求是將序列從小到大排序,那麼每一趟比較都會把值較大的逐漸從前面移動到後面。

2.氣泡排序的c語言實現

(1)排序的總趟數和每趟排序陣列元素的比較次數都設定為陣列大小n-1,排序的比較次數為(n-1)*(n-1)次

//

氣泡排序

#include int

main()

;

inti,j,n;

//整個陣列的大小除以第乙個陣列元素的大小 ,得到陣列的長度

n=sizeof(a)/sizeof(a[0

]);

//排序前的陣列

printf("

排序前:");

for(i=0;i)

for(i=0;i1;i++) //

排序的總趟數,等於陣列大小-1 } }

printf("\n

");//排序後的陣列

printf("

排序後:");

for(i=0;i)

return0;

}

執行結果:

(2)改進的氣泡排序演算法,每趟排序的總比較次數依次減1,已經排序好的陣列元素不再參與每趟排序的比較,最壞的情況下比較次數為n-1+n-2.........+1=n*(n-1)/2次。

//

氣泡排序

#include int

main()

;

inti,j;

//排序前的陣列

printf("

排序前:");

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

for(i=0;i<5-1;i++) //

排序的總趟數,等於陣列大小-1 } }

printf("\n

");//排序後的陣列

printf("

排序後:");

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

return0;

}

執行結果:

排序演算法之氣泡排序

參考 氣泡排序演算法的運作如下 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。針對所有的元素重複以上的步驟,除了最後乙個。持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。若...

排序演算法之氣泡排序

對於大多數學計算機的人來說,氣泡排序應該都是接觸的第一種排序方式,氣泡排序的排序思想是比較簡單的,它的演算法的是 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。針對所有的元素重複以上的步驟,除了...

排序演算法之氣泡排序

氣泡排序 bubble sort 是一種電腦科學領域的較簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越大的元素會經由交換慢慢 浮 到數列的頂端,...