上次我们讲了桶排序,讲了它的缺点:数字太大用不了。所以,这次我来介绍另一种排序方法:冒泡。
冒泡的基本思想,就是把每个数字与下一个数字对比,如果顺序不符,就交换位置。
例如我们将3 4 1 5 2五个数从大到小排序。
首先比较1位和2位,因为3<4,不符,交换。现在队列变成4 3 1 5 2。
再来比较第二位与第三位,因为3>1,符合,不变。
继续比较第三位与第四位,因为1<5,不符,交换。队列变成4 3 5 1 2。
继续比较第四位与第五位,因为1<2,不符,交换。现在队列变成4 3 5 2 1。
到这里,我们已经把最小的归位了。以此类推,就可以把所有的归位。代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,a[10000];
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
//排序重要部分
for(int i=1;i<=n-1;i++)
for(int j=1;j<=n-i;j++)
if(a[j]<a[j+1])swap(a[j],a[j+1]);
for(int i=1;i<=n;i++)
cout<<a[i]<<" ";
return 0;//好习惯
}

就是这样。不过,冒泡排序也有它的缺点,就是时间太长。
总结:冒泡排序可以解决桶排序的内存问题,但也会耗时间。
PS:c++排序篇未完待续!
,,,system pause不是好习惯。。。。Linux压根用不了。
你居然用swap交换函数
@Zhang, Xuheng 咋了