氣泡排序 Bubble Sort

2022-09-12 09:39:10 字數 2488 閱讀 5143

原理:比較兩個相鄰的元素,將值大的元素交換至右端(公升序)。

步驟:第一步,比較第乙個數與第二個數的大小,將大的數放到後面

第二步,比較第二個數與第三個數的大小,將大的數放到後面,依次下去,直到最後兩個數比較完成。

第三步,重複第一與第二步直到全部完成排序。

例子:int arr=;經行排序

過程:

第一趟排序:從5開始

第一次排序,經行第一步,5比2大,則調換位置,完成之後的排序為:     2  5  6  0  9

第二次排序,經行第二步,6比5大,不要調換位置,完成之後的排序為:    2  5  6  0  9

第三次排序,經行第二步,6比0大,要調換位置,完成之後的排序為:     2  5  0  6  9

第四次排序,經行第二步,9比6大,不要調換位置,完成之後的排序為:  2  5  0  6  9

第二趟排序:從2開始

第一次排序,2比5小,不要調換位置,完成之後的排序為:       2  5  6  0  9

第二次排序,5比6小,不要調換位置,完成之後的排序為:       2  5  6  0  9

第三次排序,0比6小,要調換位置,完成之後的排序為:        2  5  0  6  9

第四次排序,6比9小,不要調換位置,完成之後的排序為:       2  5  0  6  9

第三趟排序:從2開始

第一次排序,2比5小,不要調換位置,完成之後的排序為:       2  5  0  6  9

第二次排序,0比5小,要調換位置,完成之後的排序為:        2  0  5  6  9

第三次排序,5比6小,不要調換位置,完成之後的排序為:       2  0  5  6  9

第四次排序,6比9小,不要調換位置,完成之後的排序為:       2  0  5  6  9

第四趟排序:從2開始

第一次排序,0比2小,要調換位置,完成之後的排序為:        0  2  5  6  9

第二次排序,2比5小,不要調換位置,完成之後的排序為:       0  2  5  6  9

第三次排序,5比6小,不要調換位置,完成之後的排序為:       0  2  5  6  9

第四次排序,6比9小,不要調換位置,完成之後的排序為:       0  2  5  6  9

最終的答案為:0  2  5  6  9

結論:n個數字經行排序,總共進行n-1趟排序,每趟的排序次數為(n-i)次。

時間複雜度:

1.如果資料是正序排列的,那麼第一趟就可以把所有資料排好,則比較次數c和記錄移動次數m均達到最小值。

cmin = n-1

mmin = 0

最好的時間複雜度為o(n)。

2.如果資料是倒序排列的,那麼要n-1趟才可以把所有資料排好,則比較次數c和記錄移動次數m均達到最大值。

最壞時間複雜度為:o(n2)。

綜上,平均時間複雜度為:o(n2) 。

優缺點:

優點:比較簡單,空間複雜度較低,是穩定的;

缺點:時間複雜度太高,效率慢;

**:

public static void main(string args);

system.out.println("排序前的資料:");

for(int num : arr)

//通過兩個迴圈來控制

for(int i=0;iarr[j+1])

}}

system.out.println();

system.out.println("排序後的資料:");

for(int num : arr)

}

}

結果:

氣泡排序 bubble sort

氣泡排序是最基本的排序演算法,常被做為內部排序的第乙個排序演算法進行講解。它的原理非常簡單,只是一 個兩層迴圈,每次將最大或最小的放到陣列最後。演算法如下 b為陣列的起始位置,e為陣列的結果位置 int bubble int data,int b,int e return n 這個函式返回兩個整數比...

氣泡排序(Bubble Sort)

無論你學習哪種程式語言,在學到迴圈和陣列時,通常都會介紹一種排序演算法來作為例子,而這個演算法一般就是氣泡排序。並不是它的名稱很好聽,而是說這個演算法的思路最簡單,最容易理解。因此,哪怕大家可能都已經學過氣泡排序了,我們還是從這個演算法開始我們的排序之旅。氣泡排序 bubble sort 一種交換排...

氣泡排序 Bubble Sort

維基百科 氣泡排序 演算法思想 不斷的交換相鄰的兩個反序元素,使最小元素 上浮 或使最大元素 下沉 每一趟 冒泡 都會確定乙個最大的元素或最小的元素,同選擇排序類似,演算法總共只需進行n 1趟。將乙個陣列豎著放,低位址在上面,高位址在下面,所謂 上浮 就是較小的元素不斷向低位址靠近,所謂 下沉 就是...