/* 二路归并排序算法的源程序*/ #include #define MAXNUM 100 #define TRUE 1 #define FALSE 0 typedef int KeyType; typedef int DataType; typedef struct { KeyType key; /* 排序码字段 */ /*DataType info; 记录的其它字段 */ } RecordNode; typedef struct { int n; /* n为文件中的记录个数,nn) { /* 一趟归并,结果存放在数组record中*/ mergePass(pvector->record, record, pvector->n, length); length *= 2; /* 一趟归并,结果存回 */ mergePass(record, pvector->record, pvector->n, length); length *= 2; } } SortObject vector = {8, 49,38,65,97,76,13,27,49}; int main(){ int i; mergeSort(&vector); for(i = 0; i < 8; i++) printf("%d ", vector.record[i]); getchar(); return 0; }