Java程式設計師必備-資料結構與演算法之氣泡排序
阿新 • • 發佈:2019-02-01
氣泡排序基本思想:
首先,將N個元素的第一個和第二個進行比較,如果兩個元素的位置為逆序,則交換位置,進而比較第二個和第三個元素,如此類推,一直比較到第N-1和第N個元素為止。
如同下圖
首先我們在第一趟通過比較,將最大值53移到了最後面,第二趟右通過比較將第二個最大值48移動到了倒數第二個為止,可以發現,第i趟的比較就是將前面n-i+1個元素進行排序,並將最大元素放到n-i+1的位置。排序共進行了n-1此比較,最後得出一串由小到大的排列順序。
演算法的Java程式碼實現如下:
輸入引數:Object[] r是一串陣列引數,low和high分別代表排序區間的最低位和最高位
輸出引數:在陣列r的基礎上進行有序的排列
public void MaopaoSort(Object[] r, int low,int high){
int n = high - low +1;
for(int i = 0; i < n; i++){
for(int j = low;j<=high-i; j--){
if(strategy.compare(r[j],r[j+1])>0){
Object temp = r[j];
r[j] = r[j+1 ];
r[j+1] = temp;
}
}
}
}