排序算法之冒泡排序(Bubble Sort)
阿新 • • 發佈:2017-08-25
順序 temp 遍歷 col 實現 using esp blog 交換
基本思想
假如按照從小到大的順序排序,對待排序數組進行遍歷,如果當前值大於其後一個值則進行交換,不斷的進行遍歷,直到沒有交換動作的發生。冒泡排序的最好時間復雜度為O(n),最壞的時間復雜度為O(n2),所以冒泡排序的平均時間復雜度為O(n2),另外冒泡排序不會改變相同元素的前後順序,故其是一種穩定的排序算法。
實現代碼
#include<iostream> using namespace std; int main() { int MyData[10] = { 7,3,12,46,32,64,13,24,21,5 }; int Temp_Data = 0,Count = 1;//記錄是否未發生交換,若一趟冒泡無交換發生則退出 while (Count) { Count = 1; for (int i = 0; i < 10 - 1; i++) { if (MyData[i] > MyData[i + 1]) { Count++; Temp_Data = MyData[i + 1]; MyData[i + 1] = MyData[i]; MyData[i]= Temp_Data; } } if (Count == 1) { Count = 0; } } for (int i = 0; i < 10; i++) { cout << MyData[i] << " "; } cout << endl; system("pause"); return 0; }
排序算法之冒泡排序(Bubble Sort)