關於氣泡排序(改進前與後對比)

2021-10-09 21:00:24 字數 888 閱讀 2280

氣泡排序是最基本的排序方式,但是最初的氣泡排序有一點不足,他只是死板的每一次都比較,不管是否已經排序完成。但是,如果加入一位change位來判斷是否已經排序完成(若change為0則說明沒有兩兩位置交換的資料,則說明已經排序完成),則可以節約大約15%的運算時間。

下面是改進前的氣泡排序和改進後的對比**。

#include

#include

#include

using

namespace std;

void

swap

(int

* a,

int* b)

//交換函式

void

main()

start =

clock()

;for

( i =

0; i < len-

1; i++

)//傳統的氣泡排序

} finish =

clock()

; time1 = finish - start;

cout <<

"傳統的氣泡排序所用時間為:"

<< time1 << endl;

start =

clock()

;for

(i =

0; i < len -

1&& change !=

0; i++

)//改進後的氣泡排序

} finish =

clock()

; time1 = finish - start;

cout <<

"改進後的氣泡排序所用時間為:"

<< time1 << endl << endl;

}

氣泡排序與改進

這個是參考大部分博主的,我想自己記下來 1.氣泡排序 顧名思義就是像吐泡泡一樣,把最大 最小的放著最左端或者最右端。我們可以看到,一共比較了21次。而且出現了乙個問題從第二次迴圈開始到結束,排序的順便其實是都沒有變化的。也就是說我們做了很多無用功。那麼我們就可以提出改進來優化氣泡排序。2.初步優化 ...

基本氣泡排序與演算法改進

氣泡排序基本思想,相鄰兩數一次比較,按照要求順序交換。array,待排陣列 n,陣列大小 int main int i printf 待排序陣列 n for i 0 i 8 i printf d array i bubblesort array,8 printf n氣泡排序後的陣列為 n for i...

詳解氣泡排序 經典與改進

兩兩比較相鄰的關鍵字,如果反序則交換,直到沒有反序的記錄為止。在這一過程中,較小的元素如同氣泡般慢慢浮到上面 正宗的冒泡演算法 public static comparable super anytype void bubblesort anytype a public static void sw...