Pagini recente » Cod sursa (job #3249667) | Cod sursa (job #3202601) | Cod sursa (job #1156607) | Cod sursa (job #114459) | Cod sursa (job #1107915)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in ("algsort.in");
ofstream out ("algsort.out");
void Merge(int *v,int a,int b,int c,int d)
{int a1=a,d1=d;
int x[d-a+1];
int k=0;
while(a<=b&&c<=d)
{
if(v[a]<=v[c])
{
x[k++]=v[a++];
}
else
{
x[k++]=v[c++];
}
}
if(a>b)
{
while(c<=d)
{
x[k++]=v[c++];
}
}
if(c>d)
{
while(a<=b)
{
x[k++]=v[a++];
}
}
k=0;
for(int i=a1;i<=d1;i++)
{
v[i]=x[k++];
}
}
void MergeSort(int *v,int a,int b)
{int m;
if(b-a>=1)
{
m=(a+b)/2;
MergeSort(v,a,m);
MergeSort(v,m+1,b);
Merge(v,a,m,m+1,b);
}
else return;
}
int main(){
int n,v[500005];
in>>n;
for(int i=0;i<n;i++)
{
in>>v[i];
}
MergeSort(v,0,n-1);
for(int i=0;i<n;i++)
{
out<<v[i];
}
return 0;
}