1. 程式人生 > 其它 >氣泡排序的java實現

氣泡排序的java實現

氣泡排序的基本原理是:

1、對於給定的一個長度為n的資料,相鄰資料兩兩比較,根據資料大小交換位置以實現資料的排序。從開始到最後一對資料比較獲取到最大值或者最小值

2、重複上述步驟【排除第一個元素】

3、持續重複操作,直到最後沒有元素可以比較

他的平均時間複雜度為:O(n2)

演算法穩定性:氣泡排序就是把小的元素往前調或者把大的元素往後調。比較是相鄰的兩個元素比較,交換也發生在這兩個元素之間。所以,如果兩個元素相等,是不會再交換的;如果兩個相等的元素沒有相鄰,那麼即使通過前面的兩兩交換把兩個相鄰起來,這時候也不會交換,所以相同元素的前後順序並沒有改變,所以氣泡排序是一種穩定排序演算法。

public
class Bubble { // 冒泡 public static void bubbleSort(Comparable[] arr){ // Integer[] array = {6,4,3,2,1,4}; for (int i = arr.length - 1; i > 0; i--){ for(int j = 0; j < i ; j ++){ boolean greater = greater(arr[j], arr[j + 1]); if
(greater){ exch(j, j + 1, arr); } } } } public static boolean greater(Comparable a, Comparable b) { return a.compareTo(b) > 0; } public static void exch(int i, int j, Comparable[] arr){ Comparable temp; temp
= arr[i]; arr[i] = arr[j]; arr[j] = temp; } }