Pagini recente » Cod sursa (job #2005359) | Cod sursa (job #1853546) | Cod sursa (job #1374087) | Arhiva de probleme | Cod sursa (job #2363968)
#include <fstream>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int N;
int v[500005];
void QuickSort(int left, int right)
{
int st = left, dr = right, pivot = (st + dr) >> 1;
int vPiv = v[pivot];
do
{
while(st < right && v[st] < vPiv)
st++;
while(dr > left && v[dr] > vPiv)
dr--;
if(st <= dr)
{
swap(v[st], v[dr]);
st++, dr--;
}
}
while(st <= dr);
if(left < dr)
QuickSort(left, dr);
if(st < right)
QuickSort(st, right);
}
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;
}