冒泡排序是一种十分普遍的排序方式,我就来讲一下升序。
我第一次看见冒泡排序这个名字时,第一感觉就是:抽象到裂开
为什么叫“冒泡排序”而不是“肥皂排序”呢?
就因为它的原理了,就想水煮沸腾时有泡泡冒上来一样,是一趟又一趟的。
需要执行-1次(第一个n是指
有n项,第二个n是指每一项都要搬运n次)
每次如果那就swap它们就可以了。
具体如下:
=5
5 4 3 2 1
=0{
4 5 3 2 1
4 3 2 5 1
4 3 2 1 5
}
=1{
4 3 2 1 5
3 4 2 1 5
3 2 4 1 5
3 2 1 4 5
}
=3{
3 2 1 4 5
2 3 1 4 5
2 1 3 4 5
}
=4{
2 1 3 4 5
1 2 3 4 5
break;
}
代码如下:
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
int a[n];
for(int i=0;i<n;i++){
cin>>a[i];
}
for(int i=0;i<n;i++){
for(int j=0;j<n-1;j++){
if(a[j]>a[j+1]){
swap(a[j],a[j+1]);
}
}
}
for(int i=0;i<n;i++){
cout<<a[i];
}
return 0;
}