筆記 氣泡排序

2021-08-10 08:38:57 字數 1058 閱讀 9634

氣泡排序是最簡單的交換排序方法。

基本演算法思想:首先將第乙個記錄的關鍵字和第二個記錄的關鍵字進行比較,若為逆序(l.

r[1]

.key

>l.

r[2]

.key

),則將兩個記錄交換之,然後比較第二個記錄和第三個記錄的關鍵字。依此類推,直至第n-1個記錄和第n個記錄的關鍵字進行過比較為止。上述過程稱為第一趟冒泡過程,其結果使得關鍵字最大的記錄被安置到最後乙個記錄的位置上。然後進行第二趟氣泡排序,對前n-1個記錄進行同樣操作,其結果是使關鍵字次大的記錄被安置到第n-1個記錄的位置上。一般地,第i趟氣泡排序是從l.

r[1]

到l.r[n−

i+1]

依次比較相鄰李娜改革記錄的關鍵字,並在「逆序」時交換相鄰記錄,其結果是這n-i+1個記錄中關鍵字最大的記錄被交換到第n-i+1的位置上。

整個排序過程需進行k(1≤

k<

n )趟氣泡排序,顯然判別氣泡排序結束的條件應該是在一趟排序過程中沒有進行過交換記錄的操作。右下圖可見,在氣泡排序的過程中,關鍵字較小的記錄好比水中氣泡逐趟向上漂浮,而關鍵字較大的記錄好比石塊往下沉,每一趟有一塊「最大」的石頭沉到水底。

; printf("排序前:\n");

print(d,n);

bubble_sort(d,n);

printf("排序後:\n");

print(d,n);

}

氣泡排序筆記

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

氣泡排序 筆記

def bubble sort li for i in range len li 1 這個迴圈負責設定氣泡排序進行的次數 for j in range len li i 1 j為列表下標 if li j li j 1 li j li j 1 li j 1 li j return print li 比...

排序演算法筆記2 氣泡排序

顧名思義,交換排序就是根據兩個關鍵字值的比較結果,不滿足次序要求時交換。氣泡排序和快速排序是典型的交換排序演算法。其中快速排序是目前最快的排序演算法 氣泡排序是一種最簡單的交換排序演算法,通過兩兩比較,逆序交換,使關鍵字大的像泡泡一樣冒出來放在尾部。重複執行氣泡排序,最終得到有序序列。1 待排序的元...