Pagini recente » Flux si cuplaj | Cod sursa (job #1090146) | Cod sursa (job #3154949) | Cod sursa (job #1354482) | Cod sursa (job #3253391)
#include <fstream>
using namespace std;
ifstream cin("algsort.in");
ofstream cout("algsort.out");
const int nmax=500000;
int n, v[nmax+5];
int aux[nmax+5];
void Mergesort(int left, int right)
{
if(left==right)return;
int mid=(left+right)/2;
Mergesort(left, mid);
Mergesort(mid+1, right);
int i=left, j=mid+1, k=left;
while(i<=mid && j<=right)
{
if(v[i]<v[j])
aux[k++]=v[i++];
else
aux[k++]=v[j++];
}
while(i<=mid)
aux[k++]=v[i++];
while(j<=right)
aux[k++]=v[j++];
for(k=left;k<=right;k++)
{
v[k]=aux[k];
}
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>v[i];
}
Mergesort(1, n);
for(int i=1;i<=n;i++)
{
cout<<v[i]<<' ';
}
return 0;
}