冒泡排序 | ||
---|---|---|
Time Limit: 1000 MS | Memory Limit: 1000 KB |
Description
给定一维int型数组, 请输出使用冒泡排序方法进行从小到大排序过程中第一遍扫描后的结果.
Input
输入第1行有一个int型正整数m (m<100), 表示有m行输入.
每行输入的第一个数为int型正整数n (0<n<1000), 后面接着输入n个int型整数.
Output
输出m行, 每行输出为第一遍扫描后的结果.
Sample Input
2
7 3 6 4 7 6 8 2
8 2 7 5 8 4 9 6 3
Sample Output
3 4 6 6 7 2 8
2 5 7 4 8 6 3 9
从第i位开始,依次进行大小比较。若i+1位大于第i位,则二者交换位置,直到n-i位停止,每排序一趟能确定首尾两个元素。
#include <iostream>
using namespace std;
int main()
{
int n, N;
cin >> N;
for (int i = 0; i < N; i++) {
cin >> n;
int* a = new int[n];
for (int i = 0; i < n; i++) {
cin >> a[i];
}
for (int i = 0; i < n - 1; i++) {
if (a[i] > a[i + 1])
{
int t;
t = a[i + 1];
a[i + 1] = a[i];
a[i] = t;
}
}
for (int i = 0; i < n; i++) {
cout << a[i] << " ";
}
cout << endl;
}
return 0;
}