Pagini recente » Cod sursa (job #1442137) | Cod sursa (job #160686) | Cod sursa (job #1972393) | Cod sursa (job #1467368) | Cod sursa (job #1644008)
#include <fstream>
#define InFile "algsort.in"
#define OutFile "algsort.out"
#define MAX 500001
using namespace std;
ifstream fin (InFile);
ofstream fout (OutFile);
void solve (unsigned int v[], unsigned int left, unsigned int right);
unsigned int N;
unsigned int v[MAX];
unsigned int i;
int main ()
{
fin >> N;
for (i=1; i<=N; i++)
fin >> v[i];
solve (v,1,N);
for (i=1; i<=N; i++)
fout << v[i] << ' ';
return 0;
}
void solve (unsigned int v[], unsigned int left, unsigned int right)
{
int tmp, pivot;
int i, j;
i = left;
j = right;
pivot = v[(left+right)/2];
while (i <= j)
{
while (v[i] < pivot)
i++;
while (v[j] > pivot)
j--;
if (i <= j)
{
tmp = v[i];
v[i] = v[j];
v[j] = tmp;
i++;
j--;
}
}
if (left < j)
solve(v,left,j);
if (right > i)
solve(v,i,right);
}