/***************************************************/
/* Description:四、递归并排序(C语言源代码)
/* Date:2021/9/18
/* Author:汝南城
/****************************************************/
#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 100
/*排序算法基于的顺序表存储结构*/
typedef int KeyType;
typedef struct {
int key;
char name[10];//other info
}RedType;
typedef struct {
RedType r[MAXSIZE + 1];
int length;
}SqList;
/*①合并两个相邻的有序序列*/
void Merge(RedType R[], RedType T[], int low, int mid,int high)
{
int i = low; int j = mid + 1; int k = low;
while (i <= mid && j <= high)
{
if (R[i].key < R[j].key)
T[k++] = R[i++];
else
T[k++] = R[j++];
}
while(i<=mid)T[k++] = R[i++];
while(j<=high)T[k++] = R[j++];
}
/*②2路递归归并排序将 R[low.. high]中的记录归并排序后放入 T[low.. high]中*/
void Msort(RedType R[], RedType T[], int low, int high)
{
RedType S[
四、递归并排序(C语言源代码)
最新推荐文章于 2024-06-12 16:00:39 发布