Pagini recente » Cod sursa (job #1085814) | Cod sursa (job #1775695) | Cod sursa (job #2325877) | Cod sursa (job #439983) | Cod sursa (job #1804860)
#include <fstream>
#include <algorithm>
#include <ctime>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int v[500010];
int Random(int a,int b)
{
return a+(1LL*rand()*rand())%(b-a+1);
}
void quick_sort(int st,int dr)
{
if(st>=dr) return;
int a=v[Random(st,dr)],i=st,j=dr;
while(i<=j)
{
while(i<=dr && v[i]<a) i++;
while(j>=st && v[j]>a) j--;
if(i<=j)
{
swap(v[i],v[j]);
i++;j--;
}
}
quick_sort(st,j);
quick_sort(i,dr);
}
int main()
{
srand(time(0));
int n;
fin>>n;
for(int i=1;i<=n;i++) fin>>v[i];
quick_sort(1,n);
for(int i=1;i<=n;i++) fout<<v[i]<<" ";
return 0;
}