Pagini recente » Cod sursa (job #1224487) | Cod sursa (job #1389319) | Cod sursa (job #397965) | Cod sursa (job #138954) | Cod sursa (job #3153675)
#include <fstream>
#include <ctime>
using namespace std;
ifstream cin("algsort.in");
ofstream cout("algsort.out");
int v[500001],maxi;
int part(int v[], int st, int dr)
{
int i,j,mij=v[st+rand()%(dr-st+1)];
for(i=st-1,j=dr+1;;)
{
i++;
j--;
while(v[i]<mij)
i++;
while(v[j]>mij)
j--;
if(i>=j)
return j;
swap(v[i],v[j]);
}
}
void qsort(int st, int dr)
{
if(st<dr)
{
int p=part(v,st,dr);
qsort(st,p);
qsort(p+1,dr);
}
}
int main()
{
srand(time(0));
int n,i;
cin>>n;
for(i=1;i<=n;i++)
{
cin>>v[i];
maxi=max(maxi,v[i]);
}
qsort(1,n);
for(i=1;i<=n;i++)
cout<<v[i]<<" ";
return 0;
}