Problemhttp://47.99.179.148/problem.php?id=1003
#include <iostream>
#include <algorithm>
using namespace std;
int main(){
int n;
cin >> n;
while(n--){// 有n行输入
int m;// 依次输入m个数
cin >> m;
int input[m];
for(int i = 0;i < m;i++){
cin >> input[i];
}
for(int i = 0;i < m - 1;i++){
if(input[i] > input[i + 1]){
swap(input[i], input[i + 1]);
}
}
for(int i = 0;i < m;i++){
cout << input[i] <<" ";
}
cout << endl;
}
return 0;
}
本题只要求输出冒泡排序第一轮扫描后的输出,不过完整的解法也务必要掌握。
#include <iostream>
#include <algorithm>
using namespace std;
//使用模板定义一个函数getArrayLen,该函数将返回数组array的长度
template<class T>
int getArrayLen(T& array)
{
return (sizeof(array) / sizeof(array[0]));
}
void bubbleSort(int a[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - 1 - i; j++) {
if (a[j] > a[j + 1]) {
swap(a[j], a[j + 1]);
}
}
}
}
int main() {
int a[] = { 3, 4, 1, 2 };
int n = getArrayLen(a);
bubbleSort(a, n);
for (int i = 0; i < n; i++) {
cout << a[i] << " ";
}
return 0;
}