1. 程式人生 > >氣泡排序演算法的基本思想

氣泡排序演算法的基本思想

1.氣泡排序的基本思想 氣泡排序是交換排序中一種簡單的排序方法。

它的基本思想是對所有相鄰記錄的關鍵字值進行比效,如果是逆順(a[j]>a[j+1]),則將其交換,最終達到有
序化;

其處理過程為: 

(1)將整個待排序的記錄序列劃分成有序區和無序區,初始狀態有序區為空,無序區包括所有待排序的記
錄。 

(2)對無序區從前向後依次將相鄰記錄的關鍵字進行比較,若逆序將其交換,從而使得關鍵字值小的記錄向
上”飄浮”(左移),關鍵字值大的記錄好像石塊,向下“墮落”(右移)。 每經過一趟氣泡排序,都使無序區中
關鍵字值最大的記錄進入有序區,對於由n個記錄組成的記錄序列,最多經過n-1趟氣泡排序,就可以將這n個記
錄重新按關鍵字順序排列。


 2.原始的氣泡排序演算法 對由n個記錄組成的記錄序列,最多經過(n-1)趟氣泡排序,就可以使記錄序列成為 
有序序列,第一趟定位第n個記錄,此時有序區只有一個記錄;第二趟定位第n-1個記錄,此時有序區有兩個記
錄;以此類推,演算法框架為: for(i=n;i>1;i—) { 定位第i個記錄; }



下面給出完整的氣泡排序演算法:

for (i=n;i>1;i--) {

for (j=1;j<=i-1;j++) {

if(a[j].key>a.[j+1].key) {

temp=a[j];

           a[j]=a[j+1];

             a[j+1]=temp;

        }

    }

}