參考文章:
https://www.cnblogs.com/guoyaohua/p/8600214.html 十大經典排序算法最強總結(含JAVA代碼實現)
冒泡排序分析:
平均時間複雜度 | 最好情況 | 最壞情況 | 空間複雜度 | 排序方式 | 穩定性 |
O(n^2) | O(n) | O(n^2) | O(1) | In-place | 穩定 |
冒泡排序:
它重複地走訪過要排序的元素列,依次比較兩個相鄰的元素,如果他們的順序(如從大到小、首字母從A到Z)錯誤就把他們交換過來。走訪元素的工作是重複地進行直到沒有相鄰元素需要交換,也就是說該元素列已經排序完成。
這個算法的名字由來是因爲越大的元素會經由交換慢慢“浮”到數列的頂端(升序或降序排列),就如同碳酸飲料中二氧化碳的氣泡最終會上浮到頂端一樣,故名 “冒泡排序” 。
原理示意圖(圖片引用自參考文章):
Java 代碼實現:
public static int[] bubbleSort(int[] array){
if(array.length == 0)
return array;
for(int i=0; i<array.length; i++){
for(int j=0; j<array.length-1-i; j++){
if(array[j+1]<array[j]){
int temp = array[j+1];
array[j+1] = array[j];
array[j] = temp;
}
}
}
return array;
}
冒泡排序測試: