C++数据结构 2.最简单的排序算法--冒泡排序

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014183456/article/details/82901735

最简单的算法:冒泡排序

  1. 从左向右扫描数据:选择最大的数据,放在右边
  2. 比较相邻的两个数,如果左边的数大于右边的数就进行交换。

代码如下:

#include <iostream>

using namespace std;

void Bubble_sort(int p[],int n)
{
    int temp;
    for(int i=0;i<n-1;i++)
    {
      for(int j=0;j<n-i-1;j++)
        if(p[j]>p[j+1])
          swap(p[j],p[j+1]);
    }
}
int main()
{
    int a[]={2,0,1,9,8,6,3,4,7,5};
    Bubble_sort(a,sizeof(a)/sizeof(a[0]));
    for(int i=0;i<(sizeof(a)/sizeof(a[0]));i++)
        cout<<a[i]<<' ';
    return 0;
}

主要就是两个循环可以这样理解:第一个循环是已经排好的数。第二个循环是比较大小需要进行的次数。

刚开始拍好的数是0个,所以需要n-1次查找数据进行排列,找到最大的数之后i=1,记录

后面依次理解。所以总的循环次数为n*n,数据的复杂度是O(n^2),很浪费资源。

猜你喜欢

转载自blog.csdn.net/u014183456/article/details/82901735