Pagini recente » Cod sursa (job #702985) | Cod sursa (job #1121374) | Cod sursa (job #1972068) | Cod sursa (job #126983) | Cod sursa (job #353296)
Cod sursa(job #353296)
#include <fstream.h>
#define NMAX 500002
int N, v[NMAX];
int partitie(int st, int dr)
{
int i, j, aux, pivot;
i = st - 1;
j = dr + 1;
pivot = v[(st + dr) / 2];
while (1)
{
do { ++i; } while ( v[i] < pivot);
do { --j; } while ( v[j] > pivot);
if ( i < j)
{
aux = v[i];
v[i] = v[j];
v[j] = aux;
}
else
return j;
}
}
void sort(int st, int dr)
{
int m;
if ( st < dr)
{
m = partitie(st, dr);
sort(st, m);
sort(m + 1, dr);
}
}
int main()
{
int i;
ifstream f("algsort.in");
ofstream g("algsort.out");
f >> N;
for ( i = 1; i <= N; i++)
f >> v[i];
sort(1, N);
for ( i = 1; i <= N; i++)
g << v[i] << " ";
g << "\n";
return 0;
}