首页 > 编程语言 > 详细

冒泡排序

时间:2016-08-04 01:23:13      阅读:290      评论:0      收藏:0      [点我收藏+]
 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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!