Pagini recente » Cod sursa (job #1395816) | Cod sursa (job #354585) | Cod sursa (job #2618728) | Cod sursa (job #2055713) | Cod sursa (job #685809)
Cod sursa(job #685809)
#include <fstream>
using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");
int v[500001];
int aux [500001];
void inter (int st, int dr)
{
int i, j, k;
int m=(st+dr)/2;
for (i=k=st,j=m+1; i<=m && j<=dr; )
if (v[i]<v[j]) aux[k++]=v[i++];
else aux[k++]=v[j++];
while (i<=m)
aux[k++]=v[i++];
while (j<=dr)
aux[k++]=v[j++];
for(i=st; i<=dr; i++)
{
v[i]=aux[i];
}
}
void sortare (int st, int dr)
{
if ( st == dr) return ;
int m=(st+dr)/2;
sortare (st, m);
sortare (m+1, dr);
inter (st, dr);
}
int main ()
{
int n,i;
in>>n;
for (i=1; i<=n; i++)
{
in >> v[i];
}
sortare (1, n);
for(i=1;i<=n;i++)
{
out<<v[i]<<" ";
}
return 0;
}