Pagini recente » Cod sursa (job #180752) | Cod sursa (job #911280) | Cod sursa (job #2962534) | Cod sursa (job #2171181) | Cod sursa (job #3125404)
#include <fstream>
using namespace std;
ifstream cin ("algsort.in");
ofstream cout ("algsort.out");
int v[500010], w[500010], n;
void interclaseaza (int st, int mid, int dr)
{
int i=st, j = mid+1;
int k = st-1;
while (i<=mid && j<=dr)
{
if (v[i] < v[j])
{
w[++k] = v[i++];
}
else
{
w[++k] = v[j++];
}
}
for (; i<=mid; i++)
{
w[++k] = v[i];
}
for (; j<=dr; j++)
{
w[++k] = v[j];
}
for (i=st; i<=dr; i++)
v[i] = w[i];
}
void msort (int st, int dr)
{
if (st < dr)
{
int mid = (st+dr)/2;
msort(st, mid);
msort(mid+1, dr);
interclaseaza(st, mid, dr);
}
}
int main ()
{
cin>>n;
for (int i=1; i<=n; i++)
cin>>v[i];
msort(1, n);
for (int i=1; i<=n; i++)
cout<<v[i]<<" ";
return 0;
}