詳解氣泡排序 經典與改進

2021-10-07 10:09:41 字數 996 閱讀 7191

兩兩比較相鄰的關鍵字,如果反序則交換,直到沒有反序的記錄為止。在這一過程中,較小的元素如同氣泡般慢慢浮到上面

正宗的冒泡演算法

public

static

comparable

<

?super anytype>>

void

bubblesort

(anytype[

] a)}}

public

static

void

swapreferences

(anytype[

] a,

int index1,

int index2)

//不需要繼承comparable,沒用到比較方法

改進的冒泡演算法

當序列在經過幾次迴圈交換後已經有序,那麼繼續對有序部分的迴圈判斷就是無意義的

如2,1,3,4,5,6

當i = 1時,交換了2和1的位置,此時陣列已經有序

當i = 2時,此時我們在i = 1 時已經對6與5,5與4,4與3,3與2,進行了比較,不需要繼續進行判斷

為解決上述問題,我們使用標記變數來實現這個改進

public

static

comparable

<

?super anytype>>

void

bubblesort

(anytype[

] a)

//改進的氣泡排序}}

}public

static

void

swapreferences

(anytype[

] a,

int index1,

int index2)

//不需要繼承comparable,沒用到比較方法

氣泡排序與改進

這個是參考大部分博主的,我想自己記下來 1.氣泡排序 顧名思義就是像吐泡泡一樣,把最大 最小的放著最左端或者最右端。我們可以看到,一共比較了21次。而且出現了乙個問題從第二次迴圈開始到結束,排序的順便其實是都沒有變化的。也就是說我們做了很多無用功。那麼我們就可以提出改進來優化氣泡排序。2.初步優化 ...

氣泡排序 改進

氣泡排序是最簡單的排序演算法之一,在這裡首先要說明的是乙個要注意的地方。氣泡排序在最好情況下時間複雜度可以是o n 2 也可以是o n 下面看一種大家看得最多的寫法 public void bubblesort int arr 上面這樣寫最好情況下也是o n 2 那麼再來看下面這種寫法 public...

基本氣泡排序與演算法改進

氣泡排序基本思想,相鄰兩數一次比較,按照要求順序交換。array,待排陣列 n,陣列大小 int main int i printf 待排序陣列 n for i 0 i 8 i printf d array i bubblesort array,8 printf n氣泡排序後的陣列為 n for i...