1. 冒泡排序的过程
题目ID:6318必做题100分
最新提交:
Wrong Answer 10 分
历史最高:
Wrong Answer 10 分
时间限制: 1000ms
空间限制: 65536kB
题目描述
冒泡排序的基本思想是,对相邻的元素进行两两比较,顺序相反则进行交换,这样,每一趟会将最小或最大的元素“浮”到顶端,最终达到完全有序。
输入N个整数,对他们从小到大进行冒泡排序,每一次都从第一个元素开始向后不断比较,若是后面的元素小于前面的元素,则将他们两交换,输出冒泡排序的中间过程以及最后结果。
输入格式
第一行输入一个整数N,
第二行输入N个整数ai。
输出格式
输出N−1行排序过程,每行N个数。
样例
Input 1
5 5 4 3 2 1
Output 1
4 3 2 1 5 3 2 1 4 5 2 1 3 4 5 1 2 3 4 5
数据范围
1<=N<=1000,0<=ai<=10^9
WA代码:
#include <bits/stdc++.h>
using namespace std;
int a[1010];
int main() {
int n;
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> a[i];
}
for(int i = 1; i <= n - 1; i++) {
bool flag = false;
for(int j = 1; j <= n - i; j++) {
if(a[j] > a[j + 1]) {
swap(a[j], a[j + 1]);
flag = true;
}
}
if(!flag) {
break;
}
for(int i = 1; i <= n; i++) {
cout << a[i] << ’ ‘;
}
cout<<’\n’;
}
return 0;
}