这是冒泡排序的具体动画演示:
详见代码:
#include <bits/stdc++.h>
using namespace std;
int n;
int a[100];
int main(){
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
}
for(int i=0;i<n-1;i++){
bool flag=false;
for(int j=0;j<n-i-1;j++){
if(a[j]>a[j+1]){
swap(a[j],a[j+1]);
flag=true;
}
if(!flag){
break;
}
}
}
for(int i=0;i<n;i++){
cout<<a[i]<<" ";
}
return 0;
}
函数模板可以整理成这样:
void BubbleSort(int a[],int n){
for(int i=0;i<n;i++){
for(int j=0;j<n-i;j++){
if(a[j]>a[j+1]){
swap(a[j],a[j+1]);
}
}
}
}
如果想倒着排序:
for(int i=0;i<n;i++){
for(int j=0;j<n-i;j++){
if(a[j]<a[j+1]){
swap(a[j],a[j+1]);
}
}
}