Pagini recente » Cod sursa (job #1351821) | Cod sursa (job #2331647) | Cod sursa (job #685814) | Cod sursa (job #2440833) | Cod sursa (job #2897330)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");
const int maxn = 500005;
int v[maxn];
void quicksort(int st, int dr)
{
if(st >= dr)
return;
int pivot = v[(st + dr) / 2];
int poz1 = st;
int poz2 = dr;
while(poz1 <= poz2)
{
while(v[poz1] < pivot && poz1 <= poz2)
poz1++;
while(v[poz2] > pivot && poz1 <= poz2)
poz2--;
if(v[poz1] >= pivot && v[poz2] <= pivot && poz1 <= poz2)
{
swap(v[poz1], v[poz2]);
poz1++;
poz2--;
}
}
quicksort(st, poz2);
quicksort(poz1, dr);
}
int main()
{
int n;
in >> n;
for(int i = 1; i <= n; i++)
in >> v[i];
quicksort(1, n);
for(int i = 1; i <= n; i++)
out << v[i] << " ";
out << "\n";
return 0;
}