问题及代码:
/*
*Copyright(c++)2015,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:CPP1.cpp
*作者:宋 晨
*完成日期:2015年12月14日
*版本号:v1.0
*
*问题描述:采用归并排序、快速排序等高效算法进行排序,当数据元素较少时(如n≤64),经常直接使用直接插入排序算法等高复杂度的算法。这样做,会带来一定的好处,例如归并排序减少分配、回收临时存储区域的频次,快速排序减少递归层次等。
试按上面的思路,重新实现归并排序算法。
*/
#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
#include <time.h>
#define MinLength 64 //最短分段长度
typedef int KeyType; //定义关键字类型
typedef char InfoType[10];
typedef struct //记录类型
{
KeyType key; //关键字项
InfoType data; //其他数据项,类型为InfoType
} RecType; //排序的记录类型定义
void GetData(RecType *&R, int n)
{
srand(time(0));
R=(RecType*)malloc(sizeof(RecType)*n);
for(i