Pagini recente » Cod sursa (job #3236452) | Cod sursa (job #2337501) | Cod sursa (job #503716) | Cod sursa (job #191102) | Cod sursa (job #254767)
Cod sursa(job #254767)
#include <fstream>
const long NMAX=500000;
long part(long jos, long sus);
void quicksort(long jos, long sus);
long long sir[NMAX];
int main()
{
long i, n;
freopen("algsort.in", "r", stdin);
freopen("algsort.out", "w", stdout);
scanf("%ld", &n);
for (i=0; i<n; i++)
scanf("%lld", &sir[i]);
quicksort(0, n-1);
for (i=0; i<n; i++)
printf("%lld ", sir[i]);
return 0;
}//main
long part(long jos, long sus)
{
long p=jos, u=sus;
long long t;
while (p<u)
{
while ((sir[p]<=sir[jos])&&(p<=u))
p++;
while ((sir[u]>sir[jos])&&(p<=u))
u--;
if (p<u)
{
t=sir[p];
sir[p]=sir[u];
sir[u]=t;
}//if
}//while
t=sir[jos];
sir[jos]=sir[u];
sir[u]=t;
return u;
}//part
void quicksort(long jos, long sus)
{
long p;
if (jos<sus)
{
p=part(jos, sus);
quicksort(jos, p-1);
quicksort(p+1, sus);
}//if
}//quicksort