提交记录 18078


用户 题目 状态 得分 用时 内存 语言 代码长度
liubf21 1001. 测测你的排序 Time Limit Exceeded 0 5 s 307944 KB C++ 545 B
提交时间 评测时间
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);
}

CompilationN/AN/ACompile OKScore: N/A

Testcase #15 s300 MB + 744 KBTime Limit ExceededScore: 0


Judge Duck Online | 评测鸭在线
Server Time: 2026-03-16 13:01:18 | Loaded in 1 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠