氣泡排序的演算法思想:比較相鄰兩個元素的關鍵字值,如果反序,則交換。若按照公升序排序,每一趟將掃瞄資料序列的最大值到最後位置。
即最多掃瞄n-1次,每次確定乙個值。下面是乙個陣列的氣泡排序實現:
/*
* 氣泡排序是穩定的
* 從小到大氣泡排序
* 氣泡排序時間效率在o(n)和o(n*n)之間
*/public static int bubblesortasc(int data)
}} return data;
}
交換位置的方法可以提取為乙個方法:
/*
* 定義陣列元素交換
* 陣列data的x下標和y下標的交換
*/private static int swap(int data,int x,int y)
氣泡排序的exchange標記可以避免不必要的比較,如果沒有這個標記,就像下面這樣:
/** 氣泡排序 沒有交換標記
* 從後往前冒泡
*/public static int buulesort(int data)
{ //從後往前 n-1次掃瞄
for(int i=data.length-1;i>0;i--)
{ //比較
for(int j=data.length-1;j>=data.length-i;j--)
{if(data[j]這樣的話雖然也可以實現排序,但是它的比較次數是固定的,與需要排序的序列的順序無關,因此正確的是最上面那樣的寫法。
氣泡排序是穩定的排序演算法,要排序的序列有序時,適宜採用氣泡排序。
java陣列之氣泡排序
氣泡排序的基本思想 對比相鄰的元素值,如果滿足條件就交換元素值,把較小的元素移動到陣列前面,把大的元素移動到陣列後面,這樣較小的元素就像氣泡從底部公升到頂部。例 public class bubblesort bubblesort sorter new bubblesort 建立氣泡排序物件 sor...
氣泡排序之Java實現
1 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。2 對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。3 針對所有的元素重複以上的步驟,除了最後乙個。4 持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。package c...
氣泡排序法之Java實現
環境 notpad 6.0 jdk 6.0.24 氣泡排序的關鍵點是從後向前對相鄰的兩個陣列元素進行比較,若後面元素的值小於前面元素的值,則將這兩個元素交換位置,否則不進行交換。依次進行下去,第一趟排序可將陣列中值最小的元素移至下標為0的位置。對於有n個元素的陣列,迴圈執行n 1趟掃瞄便可完成排序。...