Pagini recente » Cod sursa (job #2197293) | Cod sursa (job #527685) | Cod sursa (job #3293069) | Cod sursa (job #2282142) | Cod sursa (job #396169)
Cod sursa(job #396169)
#include <cstdio>
using namespace std;
int A[500006],n;
void citire()
{
FILE *fin=fopen("algsort.in","r");
fscanf(fin,"%d",&n);
for (int i=1;i<=n;++i) fscanf(fin,"%d", &A[i]);
fclose(fin);
}
void afisare()
{
FILE *fout=fopen("algsort.out","w");
for (int i=1;i<=n;++i) fprintf(fout,"%d ", A[i]);
fclose(fout);
}
void qsort(int st, int dr)
{
int i=st,j=dr, val=A[(st+dr)>>1];
do
{
while (A[i]<val && i<n) ++i;
while (A[j]>val && j>1) --j;
if (i<=j)
{
int aux=A[i]; A[i]=A[j]; A[j]=aux;
++i; --j;
}
}
while (i<=j);
if (st<j) qsort(st,j);
if (i<dr) qsort(i,dr);
}
int main()
{
citire();
qsort(1,n);
afisare();
return 0;
}