氣泡排序的基本思想

2021-09-24 05:33:09 字數 1090 閱讀 8055

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—)

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

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

}}

附加段python的氣泡排序

def bubble_sort(origin_items, comp=lambda x, y: x > y):

"""高質量氣泡排序(攪拌排序)"""

items = origin_items[:]

for i in range(len(items) - 1):

for j in range(i, len(items) - 1 - i):

if comp(items[j], items[j + 1]):

items[j], items[j + 1] = items[j + 1], items[j]

for j in range(len(items) - 2 - i, i, -1):

if comp(items[j - 1], items[j]):

items[j], items[j - 1] = items[j - 1], items[j]

break

return items

位址對映:

氣泡排序基本思想

原理 比較兩個相鄰的元素,將值大的元素交換至右端。每次獲得 最大 的數 思路 依次比較相鄰的兩個數,將小數放在前面,大數放在後面。即在第一趟 首先比較第1個和第2個數,將小數放前,大數放後。然後比較第2個數和第3個數,將小數放前,大數放後,如此繼續,直至比較最後兩個數,將小數放前,大數放後。重複第一...

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

1 氣泡排序的基本思想 氣泡排序是交換排序中一種簡單的排序方法。它的基本思想是對所有相鄰記錄的關鍵字值進行比效,如果是逆順 a j a j 1 則將其交換,最終達到有 序化 其處理過程為 1 將整個待排序的記錄序列劃分成有序區和無序區,初始狀態有序區為空,無序區包括所有待排序的記 錄。2 對無序區從...

希爾排序基本思想

基本思想 先取乙個小於n的整數d1作為第乙個增量,把檔案的全部記錄分成d1個組。所有距離為dl的倍數的記錄放在同乙個組中。先在各組內進行直接插人排序 然後,取第二個增量d2 1重複上述的分組和排序,直至所取的增量dt 1 dt t l 2 1 即所有記錄放在同一組中進行直接插入排序為止。該方法實質上...