Pagini recente » Cod sursa (job #655778) | Cod sursa (job #2591099) | Cod sursa (job #1100810) | Cod sursa (job #467416) | Cod sursa (job #1458073)
#include <cstdio>
#include <algorithm>
#define NMAX 500007
using namespace std;
FILE *fin, *fout;
int n, v[NMAX];
int Mpartition(int st, int dr)
{
int i = st-1, j = st;
for( ; j< dr; j++)
{
if(v[j] < v[dr])
{
i++;
swap(v[i], v[j]);
}
}
swap(v[i+1], v[dr]);
return i+1;
}
void quickSort(int st, int dr)
{
int tmp;
if(dr - st + 1 >= 2)
{
tmp = Mpartition(st, dr);
quickSort(st, tmp-1);
quickSort(tmp+1, dr);
return;
}
}
int main()
{
fin = freopen("algsort.in", "r", stdin);
fout = freopen("algsort.out", "w", stdout);
scanf("%d", &n);
for(int i = 1; i<= n;i++) scanf("%d", &v[i]);
quickSort(1, n);
for(int i = 1; i<= n;i++) printf("%d ", v[i]);
printf("\n");
fclose(fin);
fclose(fout);
return 0;
}