码迷,mamicode.com
首页 > 编程语言 > 详细

冒泡排序(C++)

时间:2016-05-22 16:28:50      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:

冒泡排序(C++)

冒泡排序(C++):

  原理是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换,

  这样一趟过去后,最大或最小的数字被交换到了最后一位,

  然后再从头开始进行两两比较交换,直到倒数第二位时结束,其余类似看例子

  例子:

  3,4,0,8,0,1

  3,4,0,8,0,1:3>4不用交换

  3,4,0,8,0,1:4>0->交换->3,0,4,8,0,1

  3,0,4,8,0,1 : 4<8->不用交换

  3,0,4,8,0,1:8>0->交换->3,0,4,0,8,1

  3,0,4,0,8,1 : 8>1->交换->3,0,4,0,1,8

  3,0,4,0,1,8

  0,3,4,0,1,8

  0,3,4,0,1,8

  0,3,0,4,1,8

  0,3,0,1,4,8

.

.

.

以此类推

  0,0,1,3,4,8 :最后结果

 

冒泡排序的时间复杂度也为O(n^2)。

代码实现:

 

 1 template<typename Comparable>
 2 void BubbleSort(vector<Comparable>&a)
 3 {
 4     int temp;
 5     int j;
 6     for (int i = 0;i < a.size();++i)
 7     {
 8         for (j = 0;j < a.size() - i - 1;++j)
 9         {
10             if (a[j] > a[j + 1])
11             {
12                 temp = a[j];
13                 a[j] = a[j + 1];
14                 a[j + 1] = temp;
15             }
16         }
17     }
18 }//------------------------BubbleSort-end------------------
19 
20 int main()
21 {
22     vector<int> a = { 3,4,0,8,0,1 };
23     BubbleSort(a);
24     for (auto c : a)
25     {
26         cout << c<<endl;
27 
28     }
29     system("pause");
30 
31 }

 

冒泡排序(C++)

标签:

原文地址:http://www.cnblogs.com/19q3/p/5516847.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!