| Run ID | 作者 | 问题 | 语言 | 测评结果 | Time | Memory | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|
| 162068 | 金浩宸 | 优化冒泡排序 | C++ | Accepted | 6 MS | 276 KB | 895 | 2026-10-12 19:26:12 |
#include <iostream> using namespace std; int main() { int n; cin >> n; int a[2000]; for (int i = 0; i < n; i++) { cin >> a[i]; } // 改进冒泡排序:如果一轮没有交换,说明已经有序,直接退出 for (int i = 0; i < n - 1; i++) { bool flag = false; // 标记本轮是否发生交换 for (int j = 0; j < n - 1 - i; j++) { if (a[j] < a[j + 1]) // 从大到小,前面比后面小就交换 { int t = a[j]; a[j] = a[j + 1]; a[j + 1] = t; flag = true; } } if (!flag) break; // 没有交换,提前结束 } // 输出 for (int i = 0; i < n; i++) { if (i > 0) cout << " "; cout << a[i]; } cout << endl; return 0; }