题号: 10299
时限:1000ms
限制内存:32768KB
题目:
打印每一趟排序结果之冒泡
描述
冒泡排序是一种简单的排序算法,它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
现在,为了便于较好的观察每趟走访的数据结果,请将每一趟数据打印出来~
输入格式
第一行一个整数N(N<=2000),表示有N个整数需要排序。
接下来一行有N个整数ai(1<=ai<=1e9),表示待排序数列。
输出格式
输出N-1行每一趟排序结果
输入样例
输出样例
5
5 4 3 2 1
-
4 3 2 1 5
3 2 1 4 5
2 1 3 4 5
1 2 3 4 5
#include<iostream>
#include<algorithm>
using namespace std;
void f(int a[],int n){
int flag;
for(int i=n-1;i>=1;--i){
flag=0;
for(int j=1;j<=i;++j){
if(a[j-1]>a[j])
swap(a[j-1],a[j]);
flag=1;
}
int t=0;
for(int k=0;k<n;++k){
if(t)cout<<" "<<a[k];
else cout<<a[k];
t++;
}
cout<<endl;
if(flag==0)return;
}
}
int main()
{
int n,a[2005];
cin>>n;
for(int i=0;i<n;++i)
cin>>a[i];
f(a,n);
return 0;
}
冒泡排序
最新推荐文章于 2022-10-31 19:16:07 发布