詳解冒泡排序 -秒懂
點關注不迷路,歡迎再訪!
精簡博客內容,儘量已專業術語來分享。
努力做到對每一位認可自己的讀者負責。
幫助別人的同時更是豐富自己的良機。
冒泡排序算法是所以排序算法中最簡單、最基本的一種。冒泡排序算法的思路就是交換排序,通過相鄰數據的交換來達到排序的目的。
冒泡排序算法通過多次比較和交換來實現排序,其排序流程如下:
1.對數組中的各數據,依次比較相鄰的兩個元素的大小。
2.如果前面的數據大於後面的數據,就交換這兩個數據。經過第一輪的多次比較排序後,便可將最小的數據排好。
3.再用同樣的方法把剩下的數據逐個進行比較,最後便可按照從小到大的順序排好數組各數據。
public static void main(String[] args) {
int [] scores = {6,4,0,7,5,3};
int temp; //定義臨時變量
for (int i = 1; i < scores.length; i++) { //控制排序次數
for (int j = 0; j < scores.length-i; j++) {
if(scores[j] > scores[j+1]) { //將相鄰兩個數進行比較,較大的數往後冒泡
temp = scores[j];
scores[j] = scores[j+1];
scores[j+1] = temp;
}
}
System.out.print("第"+i+"步排序結果:"); //輸出每步排序的結果
for (int k = 0; k < scores.length; k++) {
System.out.print(" "+scores[k]);
}
System.out.print("\n");
}
}
第1步排序結果: 4 0 6 5 3 7
第2步排序結果: 0 4 5 3 6 7
第3步排序結果: 0 4 3 5 6 7
第4步排序結果: 0 3 4 5 6 7
第5步排序結果: 0 3 4 5 6 7
從上面的例子可以非常直觀地瞭解到冒泡排序算法的執行過程。整個排序過程就像水泡的浮起過程,故因此而得名。冒泡排序的算法在對N個數據進行排序時,無論原數據有無順序,都需要進行N-1步的中間排序。
優點:這種排序方法思路直觀簡單。
缺點:執行的步驟稍長,效率不高。