#include<iostream.h>
void Mergesort(int *A,int p,int r);
void Merge(int *A,int p,int q,int r);
void main(){
int n=4;
int *A=new int[n];
for(int i=0;i<n;i++)
cin>>A[i];
Mergesort(A,0,n-1);
for(i=0;i<n;i++)
cout<<"A["<<i<<"]="<<A[i]<<endl;
}
void Mergesort(int *A,int p,int r){
int q;
if(p<r){
q=(p+r)/2;
Mergesort(A,p,q);
Mergesort(A,q+1,r);
Merge(A,p,q,r);
}
}
void Merge(int *A,int p,int q,int r){
int n1=q-p;
int n2=r-q-1;
int *L=new int[n1];
int *R=new int[n2];
for(int i=0;i<=n1;i++)
L[i]=A[p+i];
for(int j=0;j<=n2;j++)
R[j]=A[q+j];
i=0;
j=0;
for(int k=p;k<=r;k++){
if(L[i]<R[j])
{
A[k]=L[i];
i=i+1;
}
else
{
A[k]=R[j];
j=j+1;
}
}
while(L[i]) A[k++]=L[i++];
while(R[j]) A[k++]=R[j++];
delete [](L);
delete [](R);
}
此程序是归并排序,谢谢各位大虾来看一下.
请各位大虾看一下程序的败笔之处!!!
答案:1 悬赏:20 手机版
解决时间 2021-05-16 01:35
- 提问者网友:放下
- 2021-05-15 22:17
最佳答案
- 五星知识达人网友:鸠书
- 2021-05-15 23:53
把多余的空格删除,还有把多余的括号删了,Java或者C++啊
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯