Pagini recente » Cod sursa (job #813692) | Cod sursa (job #660216) | Cod sursa (job #1630439) | Cod sursa (job #344097) | Cod sursa (job #1020703)
#include<fstream>
#include<ctime>
#include<cstdlib>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
long n,v[500001],i;
void qsort(long st,long dr)
{long i=st,j=dr,piv;
srand(time(0));
piv=v[i+rand()%(j-i+1)];
while(i<=j)
{
while(v[i]<piv)
i++;
while(v[j]>piv)
j--;
if(i<=j)
{v[i]=v[i]+v[j]-(v[j]=v[i]);i++;j--;}
}
if(st<=j)
qsort(st,j);
if(i<=dr)
qsort(i,dr);
}
int main()
{f>>n;
for(i=1;i<=n;i++)
f>>v[i];
qsort(1,n);
for(i=1;i<=n;i++)
g<<v[i]<<" ";
f.close();g.close();
return 0;
}