Pagini recente » Cod sursa (job #1890914) | Cod sursa (job #232843) | Cod sursa (job #2223894) | Monitorul de evaluare | Cod sursa (job #1553469)
#include<stdlib.h>
#include<time.h>
#include<fstream>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
void quicksort(int a[], int l, int r)
{ int pivot;
int iL=l, iR=r;
srand(time(NULL));
int e=l + rand() % (r-l+1);
pivot=a[e];
// a[e]=a[e]+a[(l+r)/2]-(a[(l+r)/2]=a[e]);
while (iL<=iR)
{
while (a[iL]<pivot)
iL++;
while (a[iR]>pivot)
iR--;
if (iL<=iR)
{a[iL]=a[iL]+a[iR]-(a[iR]=a[iL]);
iL++;
iR--;}
}
if (iL<r)
quicksort(a,iL,r);
if (iR>l)
quicksort(a,l,iR);
}
main()
{
int v[500001],n,i;
f>>n;
for(i=1;i<=n;i++)
f>>v[i];
quicksort(v,1,n);
for(i=1;i<=n;i++)
g<<v[i]<<" ";
}