Pagini recente » Borderou de evaluare (job #171566) | Cod sursa (job #2985253) | Cod sursa (job #2553981) | Borderou de evaluare (job #2687622) | Cod sursa (job #2878823)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");
int v[500001];
void interclasare(int st, int dr)
{ int c[500001];
int m=(st+dr)/2;
int i=st;
int j=m+1;
int k=st;
while (i<=m && j<=dr)
{
if(v[i]<v[j])
c[k++]=v[i++];
else
c[k++]=v[j++];
}
while(i<=m)
c[k++]=v[i++];
while(j<=dr)
c[k++]=v[j++];
for(i=st; i<=dr; i++)
v[i]=c[i];
}
void divide(int i, int j)
{
if(i==j)
{
return;
}
int m=(i+j)/2;
divide (i,m);
divide(m+1,j);
interclasare(i,j);
}
int main()
{
int n;
in>>n;
for(int i=1; i<=n; i++)
in>>v[i];
divide(1, n);
for(int i=1 ;i<=n; i++)
out<<v[i]<<" ";
return 0;
}