Pagini recente » Cod sursa (job #309851) | Cod sursa (job #2304866) | Cod sursa (job #2778734) | Cod sursa (job #2935090) | Cod sursa (job #655263)
Cod sursa(job #655263)
#include<fstream>
using namespace std;
#define IN "algsort.in"
#define OUT "algsort.out"
#define MaxN 500005
FILE *f, *g;
int v[MaxN];
long int i, n;
void QS(int v[MaxN], int stanga, int dreapta)
{
int i, j, mijloc, aux;
i=stanga;
j=dreapta;
mijloc=v[stanga+(dreapta-stanga)/2];
while(i<=j)
{
while(v[i]<mijloc)
i++;
while(v[j]>mijloc)
j--;
if(i<=j)
{
aux=v[i];
v[i]=v[j];
v[j]=aux;
i++;
j--;
}
}
if(stanga<j)
QS(v,stanga,j);
if(dreapta>i)
QS(v,i,dreapta);
}
int main()
{
f=fopen(IN,"r");
g=fopen(OUT,"w");
fscanf(f, "%ld", &n);
for(i=1; i<=n; ++i)
fscanf(f, "%d", &v[i]);
QS(v,1,n);
for(i=1; i<=n; ++i)
fprintf(g, "%d ", v[i]);
fclose(f);
fclose(g);
return 0;
}