Pagini recente » Cod sursa (job #2377252) | Cod sursa (job #2839513) | Cod sursa (job #671019) | Cod sursa (job #2650925) | Cod sursa (job #1299673)
#include <fstream>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
const int NMAX=500001;
int v[NMAX],res[NMAX];
void mergesort (int sir[],int S,int F)
{
if(S==F) return;
else
{
int mid=S+(F-S)/2,piv=mid+1; //!
mergesort(v,S,mid);
mergesort(v,mid+1,F);
int aux=S,i;
for(i=S;i<=F;i++)
{
if(S<=mid && (piv>F || sir[S]<=sir[piv]))
res[i]=sir[S++];
else
res[i]=sir[piv++];
}
for(i=aux;i<=F;i++)
sir[i]=res[i];
}
}
int main()
{
int N;
f>>N;
int i;
for(i=1;i<=N;i++)
f>>v[i];
mergesort(v,1,N);
for(i=1;i<=N;i++)
g<<v[i]<<' ';
}