java版本冒泡排序算法

冒泡排序(Bubble Sort),是一種計算機科學領域的較簡單的排序算法。

它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。

這個算法的名字由來是因為越大的元素會經由交換慢慢“浮”到數列的頂端

冒泡排序算法的運作如下:(從後往前)

  1. 比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。

  2. 對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。

  3. 針對所有的元素重複以上的步驟,除了最後一個。

  4. 持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。

代碼演示:

/**

* 冒泡排序算法,時間複雜度O(n2),算法具有穩定性,堆排序和快速排序算法不具有穩定性,即排序後相同元素的順序會發生變化

* @param src

*/

public static void bubbleSort(int[] src) {

if (src.length > 0) {

int length = src.length;

for (int i = 1; i < length; i++) {

for (int j = 0; j < length - i; j++) {

if

(src[j] > src[j + 1]) {

int temp = src[j];

src[j] = src[j + 1];

src[j + 1] = temp;

}

}

}

}

}


分享到:


相關文章: