python归并排序递归_归并排序(递归)

本文介绍了如何使用C++实现归并排序,并提供了创建顺序表、归并排序、显示序列等函数的详细代码。通过递归方式,展示了归并排序的过程,最后在主函数中进行排序并展示排序结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include

using namespace std;

#define MAXSIZE 20

typedef struct{

int key;

char *otherinfo;

}RedType;

typedef struct{

RedType *r;

int length;

}SqList;

void Create_Sq(SqList &L){

int i,n;

cout<

cin>>n;

cout<

for(i=1;i<=n;i++){

cin>>L.r[i].key;

L.length++;

}

}

//相邻两个有序子序列归并

void Merge(RedType R[],RedType T[],int low,int mid,int high){

int i,j,k;

i=low; j=mid+1;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++];

}

void MSort(RedType R[],RedType T[],int low,int high){

int mid;

RedType *S=new RedType[MAXSIZE];

if(low==high) T[low]=R[low];

else{

mid=(low+high)/2;

MSort(R,S,low,mid);

MSort(R,S,mid+1,high);

Merge(S,T,low,mid,high);

}

}

//归并排序

void MergeSort(SqList &L){

MSort(L.r,L.r,1,L.length);

}

void show(SqList L){

int i;

for(i=1;i<=L.length;i++)

cout<

}

int main(){

SqList R;

R.r=new RedType[MAXSIZE+1];

R.length=0;

Create_Sq(R);

MergeSort(R);

cout<

show(R);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值