1 #include <iostream> 2 #include <vector> 3 #include <algorithm> 4 using namespace std; 5 6 // 冒泡排序 7 class BubbleSort 8 { 9 public: 10 void SortF(vector<int>& vec) 11 { 12 for (int j = 0; j < vec.size()-1; ++j) // n-1次 13 { 14 for(int i = 1; i < vec.size(); ++i) // n-1次 15 { 16 if(vec[i-1] > vec[i]) 17 { 18 std::swap(vec[i-1], vec[i]); 19 } 20 } 21 } 22 } 23 24 void SortW(vector<int>& vec) 25 { 26 bool is_sorted = false; 27 auto n = vec.size(); 28 29 while(!is_sorted) 30 { 31 is_sorted = true; 32 33 for (int i = 1; i < n; ++i) 34 { 35 if(vec[i-1] > vec[i]) 36 { 37 std::swap(vec[i-1], vec[i]); 38 is_sorted = false; 39 } 40 } 41 --n; 42 } 43 } 44 }; 45 46 void Print(const vector<int>& vec) 47 { 48 for(auto entry : vec) 49 { 50 cout << entry << " "; 51 } 52 53 cout << endl; 54 } 55 56 int main() 57 { 58 BubbleSort bs; 59 60 vector<int> vec = {5,2,7,4,6,3,1}; 61 bs.SortF(vec); 62 Print(vec); 63 64 vector<int> vec_1 = {5,2,7,4,6,3,1}; 65 bs.SortW(vec_1); 66 Print(vec_1); 67 68 return 0; 69 }
原文:http://www.cnblogs.com/lijiatu/p/5735052.html