冒泡排序(C++)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了冒泡排序(C++)相关的知识,希望对你有一定的参考价值。

冒泡排序(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++)的主要内容,如果未能解决你的问题,请参考以下文章

c++冒泡排序法

C++:冒泡排序

习题之冒泡排序的C++实现

C++ 冒泡排序升序 - 不对所有元素进行排序

C++实现冒泡排序和选择排序算法

C++ 冒泡排序负数