Pagini recente » Cod sursa (job #1771970) | Cod sursa (job #547206) | Cod sursa (job #369146) | Cod sursa (job #2827158) | Cod sursa (job #794441)
Cod sursa(job #794441)
#include<fstream>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int n,i,j,v[500001],w[500001];
void interc (int l, int m, int r)
{
int k=l-1;
i=l;
j=m+1;
while(i<=m && j<=r)
{
if(v[i]<v[j])
{
k++;
w[k]=v[i];
i++;
}
else
{
k++;
w[k]=v[j];
j++;
}
}
while(i<=m)
{
k++;
w[k]=v[i];
i++;
}
while(j<=r)
{
k++;
w[k]=v[j];
j++;
}
for(i=l;i<=r;i++)
v[i]=w[i];
}
void MergeSort (int l, int r)
{
if(l==r)
return;
int mij=(l+r)/2;
MergeSort (l,mij);
MergeSort (mij+1,r);
interc (l,mij,r);
}
int main ()
{
f>>n;
for(i=1;i<=n;i++)
f>>v[i];
MergeSort(1,n);
for(i=1;i<=n;i++)
g<<v[i]<<" ";
f.close();g.close();
return 0;
}