氣泡排序 BubbleSort

2021-08-20 11:51:05 字數 761 閱讀 7427

氣泡排序是乙個經典的排序演算法,它的原理簡單,在資料不多的前提下可以取得良好的效果。

演算法原理:每次比較待排列序列中相鄰兩個數字,若是逆序,則交換兩個數字位置,從左至右每兩個相鄰數字都完成了一次比較,則稱完成了一趟比較。假設序列元素為n的前提下,最多n趟就可以完成排列任務。

第一趟排列

待排列序列

3、5、4、2、1

第一次比較

3、5、4、2、1

第二次比較

3、4、5、2、1

第三次比較

3、4、2、5、1

第四次比較

3、4、2、1、5

第一趟完成

3、4、2、1、5

演算法偽碼:

1.基於上述描述,可以很直觀地給出**:

bubblesort(int* a,int length)

}}

上述演算法很直觀,容易理解。可以輕易得出複雜度為o(n^2)。但這中方法明顯不是最簡單地,在給出已經有序地序列時,它仍然需要n趟排列。這時可以考慮,設定乙個標誌量,用以標記該趟排列是否發生了元素交換,如果沒有則說明元素已經有序了。

2.優化後的氣泡排序:

bubblesort_1(int* a,int length)}}

}

使用上述演算法之後,對於部分有序的序列,其耗費時間將會降低一些,但是時間複雜度仍然是o(n^2)。

綜上所述,冒泡演算法的描述就完成了。

資料結構. 嚴蔚敏. 清華大學出版社

氣泡排序 bubble sort

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

氣泡排序(Bubble Sort)

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

氣泡排序 Bubble Sort

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