排序 氣泡排序

2021-07-15 07:01:58 字數 982 閱讀 5797

如圖1:

氣泡排序:即將這樣一連串的泡泡(各種可比較大小的資料),通過兩兩相比較的辦法,排列出一定的順序。

以從小到大的排序順序為例,需要一下步驟:

1.從上到下依次兩兩相比較,若上面的大於下面的則交換位置,否則位置不變,直到最後兩個元素比較完成,這樣的操作稱為一趟比較,第一趟比較一定是將最大的泡泡排在最後乙個位置。

2.同理,第二趟是將第二大泡泡排在倒數第二位置,所以只需比較到倒數第二個位置,因為最後乙個位置的泡泡已經確定。

3.依次方法,直到第乙個泡泡位置確定

4.n個泡泡,每次確定乙個泡泡的位置,所有一共需要n趟排序。

package cn.com.mp.sort;

public

class bubblesort ;

int array=;

sort(array);

}/* 定義氣泡排序演算法 */

public

static

void sort(int array) }/*

* 判斷是否發生過交換,若沒有,則結束比較,證明所有元素已經是排序好的

* */

if (!flag) }/*

* 遍歷輸出結果

* */

for (int i = 0; i < len; i++) }}

1.時間複雜度:

最好情況,所有的元素都已經排序好,只進行一趟排序,一次for迴圈,所以時間複雜度為o(n)

最壞情況,元素亂序,需要進行n趟排序,兩層for迴圈,所以時間複雜度為o(n^2)

2.穩定性

因為定乙個嚴格的判斷,只有if(array[i]>array[i+1]),即前乙個元素完全大於後乙個元素時才交換位置,相等時並不交換位置,保證了穩定性,所以氣泡排序是穩定性排序

3.建議

建議建立斷點,使用junit跟蹤除錯當陣列已經是排序好的情況,用於驗證flag標識位的優勢。

氣泡排序 排序 氣泡排序

既然寫了計組思來想去便打算把資料結構也寫下來,寫的時候總是發現看的時候無法發現的問題,受益良多。交換排序的基本思想 exchange until sorted 順序,分支,迴圈 注意偽 的熟悉 下面介紹兩種交換演算法 首先進行聯想,用乙個圖進行輔助聯想 水冒泡過程 頂部是陣列的begin,底部理解為...

氣泡排序 氣泡排序法

冒泡法是一種簡單的排序方法,它的實現非常簡單。首先對n個專案進行掃瞄,比較相領兩個專案的大小,若發現違背大小次序則進行互換,由此可以使n個專案中的最大者換到最後。然後對剩下的未排序好的專案再進行掃瞄,使它們的最大者換到表的最後。以此類推,直到將表全部排序好為止。這種排序方法,每遍掃瞄以後,都縮短了待...

排序 氣泡排序

氣泡排序 氣泡排序 bubble sort 是一種 電腦科學 領域的較簡單的 排序演算法 它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。原理是臨近的數字兩兩進行比較,按照從小到大或者從大到小...