冒泡排序是最簡單入門的排序算法了。我們來分析分析。
1 假設我們要排序的數組如下,排序結果按升序排列。
int array[] = {43,24,12,56,78,9,67,50};
2 其數組長度爲int n = array.length;
3 冒泡排序的定義是將最大值依次向數組右側移動。也就是說需要相鄰的元素進行比較。那麼這麼操作的規律就如下了:
(1) 第一次循環比較,數組中的最大值被移動到最右側。
(2) 第二次循環比較,數組中第二大的值被移動到倒數第二位。並且最右側的值不用進行比較了。
(3) 第三次循環比較,數組中第三大的值被移動到倒數第三位,並且最右側的兩個值不用進行比較了。
.......
我們總共需要循環比較n次。每一次循環只需選出一個最大值往最右側移動即可。
代碼如下:
public class BubbleSort {
public static void main(String[] args) {
int array[] = {43,24,12,56,78,9,67,50};
for(int i=0;i<array.length;i++)
for(int j=0;j<array.length-i-1;j++){
if(array[j] > array[j+1]){
int temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
for(int i=0;i<array.length;i++){
System.out.println(array[i]);
}
}
}
for(int i=0;i<array.length;i++)
這一句代碼就說明一共要循環比較n次。
for(int j=0;j<array.length-i-1;j++)
這一句代碼就說明上述第三點的結論。