基本方法:
設待排序對象序列中的對象個數爲n。一般地,第i趟起泡排序從1到n-i+1依次比較相鄰兩個記錄地關鍵字,如果發生逆序,則交換之,其結果是這n-i+1個記錄中,關鍵字最大的記錄被交換到第n-i+1的位置上,最多作n-1趟。
代碼實現:
public class Sort {
public static void main(String[] args){
int[] array = {21,25,49,25,16,8,100,46,88};
sort(array);
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
}
}
private static void sort(int[] array) {
int length = array.length;
for (int i = length; i>1; i--) {//i變量用來控制遍歷的次數,起始值爲數組的長度,每次比較完一趟後,i-1,因爲最後的一位已經確定是最大的,無需再比較
for (int j = 0; j < i-1; j++) {//j變量表示元素的位置
if(array[j]>array[j+1])//從第一個位置開始到i-1個位置遍歷,如果發現值小於下一個元素,那麼與其交換位置.
swap(array,j,j+1);
}
}
}
//交換方法
private static void swap(int[] array, int j, int i) {
int temp = array[j];
array[j] = array[i];
array[i] = temp;
}
}