السلام عليكــم ورحمـة الله وبركاتــه ،،
كتبت كود لعملية ال merge sortبس ما رضي اطبق صح مع اني تتبعته وما لاحظت اي خطأ ارجو المساعدة في ايجاد مشكلة هالبرنامج لانه بكره تسليمه
شكراااااااااااااا
#include<iostream.h>
#include<cstdlib>
void mergesort(int A[],int n);
void merge(int B[],int b,int C[],int c,int A[],int a);
//int B[8];
// int C[8];
int i,j;
int B[4];
int C[4];
void main()
{
int A[]={1,13,5,4,9,2,6,8};
int n=8;
mergesort(A,8);
int u;
for(u=0;u<n;u++)
cout<<A<<" ";
}
void mergesort(int A[],int n)
{
//int i,j;
// int B[4];
// int C[4];
if(n>1)
{
for(i=0;i<=(abs(n/2)-1);i++)
B=A;
int w=0;
for(j=abs(n/2);j<=n-1;j++)
{
C[w]=A[j];
w++;
if(w>(abs(n/2)-1))
break;
}
mergesort(B,abs(n/2));
mergesort(C,abs(n/2));
merge(B,abs(n/2),C,abs(n/2),A,n);
}
}
void merge(int B[],int b,int C[],int c,int A[],int a)
{
int r,e;
int i=0,j=0,k=0;
while(i<b && j<c)
{
if(B<=C[j])
{
A[k]=B;
i=i+1;
}
else
{
A[k]=C[j];
j=j+1;
}
k=k+1;
}
if(i==B)
{
int x=k;
for(r=j;r<=c-1;r++)
{
A[x]=C[r];
x++;
if(x>b+c-1)
break;
}
}
else
{
int y=k;
for(e=i;e<=b-1;e++)
{
A[y]=B[e];
y++;
if(y>b+c-1)
break;
}
}
}