سلام
قصد دارم از این به بعد هر از گاهی الگوریتم های پیاده سازی شده در ++C رو در وبلاگم بگذارم.
اگر در مورد کدها مشکلی داشتید در قسمت نظرات مشکلتون رو مطرح کنین.
برای دیدن کد merge sort به ادامه مطلب مراجعه کنید...
#include<iostream>
using namespace std;
void merge(int *A,int n,int *B,int m,int *C)
{
int j=0,i=0,p=0,q=0;
cout<<"ghable while!";
while(i<n+m)
{
if(q == m or (p < n and A[p]<B[q]))
{
C[i]=A[p];
i++;
// if (p<n)
p++;
}
else
{
C[i]=B[q];
i++;
// if (q<m)
q++;
}
}
cout<<"bade while"<<endl;
for (int i = 0; i < n + m; i++)
cout <<C[i] << " ";
cout << endl;
}
void msort(int *A,int n)
{
int C[n];
if(n<=1)
return ;
msort(A,n/2);
msort(A+n/2,(n+1)/2);
merge(A,n/2,A+n/2,(n+1)/2,C);
for(int k=0;k<n;k++)
A[k]=C[k];
}
main()
{
int A[10]={5,11,10,9,4,6,120,67,12,1},n=10,B[10]={0};
msort(A,n);
system("pause");
}