Pagini recente » Borderou de evaluare (job #256489) | Omida Mincinoasa | Cod sursa (job #1503240)
#include <iostream>
#include <fstream>
#define NMAX 500010
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int n,i,v[NMAX],b[NMAX];
void Merge_sort(int left, int right)
{
int m,i,j,k;
m=(left+right)>>1;
if (left==right) return;
Merge_sort(left,m);
Merge_sort(m+1,right);
for(i=left, j=m+1, k=left; i<=m || j<=right;)
{
if (j>right || (i<=m && v[i]<v[j]))
b[k++]=v[i++];
else b[k++]=v[j++];
}
for(k=left;k<=right;k++)
v[k]=b[k];
}
int main()
{
f>>n;
for(i=1;i<=n;i++)
f>>v[i];
Merge_sort(1,n);
for(i=1;i<=n;i++)
g<<v[i]<<" ";
return 0;
}