C++实现冒泡排序
#include <iostream>
using namespace std;
int main() {
// 一共要解m个排序问题
int m;
cin >> m;
// 解决问题
while ((--m) >= 0) {
// 输入数组长度
int n;
cin >> n;
// 输入数组
int* a = new int[n];
for (int i = 0; i < n; ++i) {
cin >> a[i];
}
// 开始冒泡排序
int tempt = 0; // 中间变量,用于交换元素
// 至多要排序n次
for (int conter = 1; conter <= n; ++conter) {
// 记录是否发生了交换
bool flag = false;
//每次对相邻的两个元素进行排序
for (int i = 0; i < n - 1; ++i)
{
if(a[i]>a[i+1]) {
tempt = a[i];
a[i] = a[i+1];
a[i+1] = tempt;
flag = true;
}
}
// 如果一次扫描过后没有发生元素交换,则已完成排序
if (!flag) {
break;
}
}
//输出从小到大排序的数组
cout<<"数组从小到大排序依次是:";
for (int i = 0; i < n; ++i) {
cout<<a[i]<<" ";
}
cout<<endl;
// 释放空间
delete [] a;
}
}
文章评论