Pagini recente » Cod sursa (job #625821) | Cod sursa (job #2865815) | Cod sursa (job #1901110) | Cod sursa (job #2130327) | Cod sursa (job #2416205)
#include <fstream>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
const int NMAX = 500000;
int N, v[NMAX + 5];
void QuickSort(int l, int r)
{
int st = l, dr = r, pivot = (l + r) >> 1;
int valPivot = v[pivot];
do
{
while(st < r && v[st] < valPivot)
st++;
while(dr > l && v[dr] > valPivot)
dr--;
if(st <= dr)
{
swap(v[st], v[dr]);
st++, dr--;
}
}
while(st <= dr);
if(st < r)
QuickSort(st, r);
if(dr > l)
QuickSort(l, dr);
}
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;
}