氣泡排序演算法的基本思想
阿新 • • 發佈:2019-01-10
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; } } }