冒泡排序就是每迭代一次,将最大的值移到数组的最右边,重复arr.size()大小次数以后,数组按序排列,是稳定的排序算法
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
while(cin>>n){
//数据处理
vector<int> arr;
while(n--){
int num;
cin>>num;
arr.push_back(num);
}
//冒泡排序
int j=0;
for(int i=0;i<arr.size();i++){
for(;j<arr.size()-i;j++){
//第i次遍历,只需要遍历arr.size()-i个数,,因为其他的数已经按顺序排列
if(arr[j]>arr[j+1]){
//如果两个连着的数是反序的,就交换他们的位置
swap(arr[j],arr[j+1]);
}
}
j=0; //每次从开始遍历数组
}
for(auto x:arr){
cout<<x<<" ";
}
arr.clear();
}
return 0;
}
原文:https://www.cnblogs.com/jobshenlei/p/14597397.html