Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
136579 | 谢思涵 | 常用排序法 | C++ | 运行超时 | 95 | 1514 MS | 7292 KB | 643 | 2024-03-09 10:50:18 |
#include <iostream> using namespace std; int n, a[1000100]; void sort(int l, int r) { if(l >= r) return; int mid = (l + r) / 2; sort(l, mid); sort(mid + 1, r); int b[100100] = {0}; for(int i = l; i <= r; i++) b[i] = a[i]; int i = l, j = mid + 1, cur; for(cur = l; cur <= r; cur++) { if(b[i] < b[j]) a[cur] = b[i++]; else a[cur] = b[j++]; if(i > mid || j > r) break; } while(i <= mid) a[++cur] = b[i++]; while(j <= r) a[++cur] = b[j++]; } int main() { cin >> n; for(int i = 1; i <= n; i++) cin >> a[i]; sort(1, n); for(int i = 1; i <= n; i++) cout << a[i] << " "; cout << endl; return 0; }