Pagini recente » Cod sursa (job #49702) | Cod sursa (job #2546019) | Cod sursa (job #560100) | Cod sursa (job #417865) | Cod sursa (job #2245349)
#include <fstream>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int N;
int v[500005];
void QuickSort(int lf, int rg)
{
int st = lf, dr = rg, pivot = (lf + rg) / 2;
do
{
while(st < rg && v[st] < v[pivot])
st++;
while(dr > lf && v[dr] > v[pivot])
dr--;
if(st <= dr)
{
swap(v[st], v[dr]);
++st, --dr;
}
}
while(st <= dr);
if(lf < dr)
QuickSort(lf, dr);
if(rg > st)
QuickSort(st, rg);
}
int main()
{
fin >> N;
for(int i = 1; i <= N; i++)
fin >> v[i];
QuickSort(1, N);
for(int i = 1; i <= N; i++)
fout << v[i] << ' ';
return 0;
}