c++写程序

来源:百度知道 编辑:UC知道 时间:2024/06/27 05:26:56
Description

这是一个很简单的排序题目.
为了锻炼大家对不同算法的了解,请大家用归并排序法对此题进行解答.
对一组整数数列A[1],A[2],A[3]......A[N]进行排序,按照从小到大的顺序输出.

Input

本题只有一组测试数据,在输入的第一行输入N(表示整数数列的大小)(N < 1000)
接下来N行输入N个整数,每一行一个整数.

Output

对已经排好序的数从小到大依次输出,每两个数之间用两个空格隔开,且每输出10个数换行.

Sample Input

12
45
545
48
47
44
45
4857
58
57
485
1255
42

Sample Output

42 44 45 45 47 48 57 58 485 545
1255 4857

代码怎么写。。。。?

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void Merge(int* beg, int* mid, int* end)
{
    int* lhs = (int*)malloc((mid - beg + 1) * sizeof(int));
    int* rhs = (int*)malloc((end - mid + 1) * sizeof(int));

    memcpy(lhs, beg, (mid - beg) * sizeof(int));
    memcpy(rhs, mid, (end - mid) * sizeof(int));
   
    lhs[mid - beg] = 0x7FFFFFFF;
    rhs[end - mid] = 0x7FFFFFFF;
   
    for(int* itl = lhs, *itr = rhs; beg != end; ++beg