Pagini recente » Cod sursa (job #55010) | Cod sursa (job #2914589) | Cod sursa (job #989014) | Cod sursa (job #412809) | Cod sursa (job #1651409)
#include<iostream>
#include<fstream>
#include<conio.h>
using namespace std;
void MERGE(long long a[],long int p,long int mid,long int q)
{
long int i,j,n1,n2;
cout<<"Entered merge"<<endl;
n1=mid-p+1;
n2=q-mid;
long long L[n1+1],R[n2+1];
for(i=1;i<=n1;i++)
L[i]=a[p+i-1];
for(j=1;j<=n2;j++)
R[j]=a[mid+j];
L[n1+1]=1000;
R[n2+1]=1000;
i=j=1;
for(long int k=p;k<=q;k++)
if(L[i]<=R[j])
{
a[k]=L[i];
i++;
}
else{a[k]=R[j];
j++;
}
}
void merge_sort(long long a[],long int p,long int q)
{int mid;
if(p<q)
{
mid=(p+q)/2;
merge_sort(a,p,mid);
merge_sort(a,mid+1,q);
MERGE(a,p,mid,q);
}
}
void afisare(int a[],int n)
{
cout<<endl;
for(long int i=1;i<=n;i++)
cout<<a[i]<<" ";
}
int main()
{
long int n,i;
ifstream f("algsort.in");
ofstream g("algsort.out");
f>>n;
long long x[n];
for(i=1;i<=n;i++)
f>>x[i];
//afisare(x,n);
merge_sort(x,1,n);
for(i=1;i<=n;i++)
g<<x[i]<<" ";
//afisare(x,n);
return 0;
}