提交记录 18078
| 提交时间 |
评测时间 |
| 2022-10-07 17:14:38 |
2022-10-07 17:14:47 |
#include <algorithm>
const int N=1e8;
unsigned T[N];
void merge_sort(unsigned *A,int x,int y,unsigned *T) // 从x到y排序(左闭右开)
{
if(y-x>1){
int m=x+(y-x)/2; // 划分
int p=x,q=m,i=x;
merge_sort(A,x,m,T); // 递归求解
merge_sort(A,m,y,T);
while(p<m||q<y){ // p和q相当于两个指针
if(q>=y||(p<m&&A[p]<=A[q])) // 加入左半数组的两种情况
T[i++]=A[p++];
else T[i++]=A[q++];
}
for(i=x;i<y;i++)A[i]=T[i]; // 从辅助空间复制回A数组
}
}
void sort(unsigned *a, int n) {
merge_sort(a, 0, n,T);
}
| Compilation | N/A | N/A | Compile OK | Score: N/A | 显示更多 |
| Testcase #1 | 5 s | 300 MB + 744 KB | Time Limit Exceeded | Score: 0 | 显示更多 |
Judge Duck Online | 评测鸭在线
Server Time: 2026-03-16 13:01:18 | Loaded in 1 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠