提交记录 10683


用户 题目 状态 得分 用时 内存 语言 代码长度
20050901 1001. 测测你的排序 Time Limit Exceeded 0 5 s 256356 KB C++ 817 B
提交时间 评测时间
2019-09-25 10:47:57 2020-08-01 02:19:15
#include <algorithm>

void Merge(unsigned int arr[], int left, int mid, int right)
{
    //merge arr[L,M](sorted) and arr(M,R](sorted) into arr[L,R]
    static int p = 1, que[123456] = { 0 };
    int pl = left, pr = mid;
    int ql = mid + 1, qr = right;

    while (pl <= pr || ql <= qr) {
        if ((ql > qr) || (pl <= pr && arr[pl] <= arr[ql])) //有点麻烦的判断,要考虑arr已提取完的情况
            que[p++] = arr[pl++];
        else
            que[p++] = arr[ql++];
    }
    while (left <= right)
        arr[right--] = que[--p];
}

void MergeSort(unsigned int arr[], int left, int right)
{
    if (left >= right)
        return;
    int mid = (left + right) / 2;
    MergeSort(arr, left, mid);
    MergeSort(arr, mid + 1, right);
    Merge(arr, left, mid, right);//二分递归
}

void sort(unsigned *a, int n) {
	MergeSort(a,1,n);
}

CompilationN/AN/ACompile OKScore: N/A

Testcase #15 s250 MB + 356 KBTime Limit ExceededScore: 0


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