氣泡排序是最基本的排序方式,但是最初的氣泡排序有一點不足,他只是死板的每一次都比較,不管是否已經排序完成。但是,如果加入一位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...