排序算法——冒泡排序 Bubble Sort

冒泡排序(Bubble Sort)是一種非常簡單的排序算法,它重複遍歷待排序序列,每次從第一個元素向後遍歷,比較兩兩相鄰的兩個元素,如果前一個元素比後一個元素大,就交換它們的位置,這樣每趟遍歷完成後,大的數總是會有序的“沉”到後面,而小的數則“浮”到前面。

例如對待排序列5 1 4 2 8,應用冒泡排序的排序過程如下

第一趟:

( 5 1 4 2 8 ) –> ( 1 5 4 2 8 ), 比較1和5,因爲5比較大,所以交換之

( 1 5 4 2 8 ) –>  ( 1 4 5 2 8 ), Swap since 5 > 4

( 1 4 5 2 8 ) –>  ( 1 4 2 5 8 ), Swap since 5 > 2

( 1 4 2 5 8 ) –> ( 1 4 2 5 8 ), 因爲5比8小,所以不用交換

第二趟:

( 1 4 2 5 8 ) –> ( 1 4 2 5 8 )

( 1 4 2 5 8 ) –> ( 1 2 4 5 8 ), Swap since 4 > 2

( 1 2 4 5 8 ) –> ( 1 2 4 5 8 )

( 1 2 4 5 8 ) –>  ( 1 2 4 5 8 )

現在,數組已排好序,但是算法並不知道,所以還是會再進行一趟掃描,發現沒有任何元素交換,才知道排序完成。

第三趟:

( 1 2 4 5 8 ) –> ( 1 2 4 5 8 )

( 1 2 4 5 8 ) –> ( 1 2 4 5 8 )

( 1 2 4 5 8 ) –> ( 1 2 4 5 8 )

( 1 2 4 5 8 ) –> ( 1 2 4 5 8 )

 

冒泡排序對n個元素排序需要O(n^2)次比較,且可以原地排序,該算法雖然簡單,但是當元素數量多的時候排序效率很低。

冒泡排序是與插入排序擁有相等的運行時間,但是兩種

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