十四、自己動手實現排序算法(2)------------“ Bubble Sort 冒泡排序 ”

參考文章:

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;
}

 

冒泡排序測試:

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章