Pagini recente » Cod sursa (job #2887677) | Cod sursa (job #2065758) | Cod sursa (job #2373293) | Istoria paginii runda/test_durata/clasament | Cod sursa (job #1660370)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <stdlib.h>
using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");
int *a;
int n;
void quicksort(int x,int y)
{
if(x<y)
{
int i =x,j=y,pivot = a[i+rand()%(j-i+1)];
while(i<j)
{
while(a[i] < pivot)
i++;
while(a[j] > pivot)
j--;
if(i<=j)
{
swap(a[i],a[j]);
i++;
j--;
}
}
if(x < j)
quicksort(x,j);
if(i<y)
quicksort(i,y);
}
}
int main()
{
in>>n;
a = new int[n+1];
for(int i=1;i<=n;i++)
in>>a[i];
in.close();
///
quicksort(1,n);
///
for(int i=1;i<=n;i++)
out<<a[i]<<" ";
delete[] a;
out.close();
return 0;
}