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 }