Mai intai trebuie sa te autentifici.
Cod sursa(job #1324940)
| Utilizator | Data | 22 ianuarie 2015 22:41:33 | |
|---|---|---|---|
| Problema | Sortare prin comparare | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.67 kb |
using namespace std;
#define NMAX 500001
int v[NMAX],res[NMAX];
void mergesort(int v[], int S, int F)
{
if(S==F) return;
int mid=S+(F-S)/2;
mergesort(v,S,mid);
mergesort(v,mid+1,F);
int piv=mid+1,aux=S,i;
for(i=S;i<=F;i++)
{
if(piv>F || (S<=mid && v[S]<=v[piv]))
res[i]=v[S++];
else res[i]=v[piv++];
}
for(i=aux;i<=F;i++)
v[i]=res[i];
}
#include <fstream>
ifstream f("algsort.in");
ofstream g("algsort.out");
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]<<' ';
}