Pagini recente » Cod sursa (job #2355819) | Cod sursa (job #3176155) | Cod sursa (job #1897908) | Cod sursa (job #2734228) | Cod sursa (job #2245355)
#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;
int val = v[pivot];
do
{
while(st < rg && v[st] < val)
st++;
while(dr > lf && v[dr] > val)
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);
for(int i = 1; i <= N; i++)
fout << v[i] << ' ';
fout << '\n';
}
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;
}