#include #include #include using namespace std;
void bubblesort1(vectora)
} }for (auto c : a) }
#if 0
氣泡排序屬於交換排序類
改進後,遍歷第n遍時如果資料沒發生改變,則直接省略之後
多餘的比較過程
時間複雜度分析:
最好情況:也就是排列前,表本身就是順序的,則根據改進後
的方法需要進行n-1次比較,沒有資料交換,時
間複雜度為o[n](注意是改進後的方法!!!)
最壞情況:也就是排列前,表是逆序的,則需要1+2+3+...+n-1
次,也就是n(n-1)/2次 時間複雜度為o[n^2]
#endif
void bubblesort2(vectora)
} }for (auto c : a) }
int main(int argc,char *argv)
; vectorb = ;
bubblesort2(a);
bubblesort2(b);
return 0;
}
排序演算法 氣泡排序的時間複雜度分析
氣泡排序演算法是一種基於比較的排序演算法,每次冒泡過程,都會有乙個資料確定位置。經過n次冒泡後,就有n個資料確定了位置。如圖所示,對陣列 4,5,6,3,2,1 進行氣泡排序。氣泡排序演算法 param arr param n public static void bubblesort int ar...
氣泡排序的時間複雜度
氣泡排序是一種用時間換空間的排序方法,最壞情況是把順序的排列變成逆序,或者把逆序的數列變成順序。在這種情況下,每一次比較都需要進行交換運算。舉個例子來說,乙個數列 5 4 3 2 1 進行冒泡公升序排列,第一次大迴圈從第乙個數 5 開始到倒數第二個數 2 結束,比較過程 先比較5和4,4比5小,交換...
各種排序演算法 c 及時間複雜度分析
編譯平台 vs2010 include stdafx.h int tmain int argc,tchar argv int j,tmp for int i 1 i 8 i a j 1 tmp for int i 0 i 8 i printf n system pause return 0 incl...