Pagini recente » Cod sursa (job #1361537) | Cod sursa (job #1379338) | Cod sursa (job #2529186) | Cod sursa (job #216611) | Cod sursa (job #590755)
Cod sursa(job #590755)
#include<fstream>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
void quick(int,int);
int divide(int,int);
int a[500000];
int divide(int p, int q)
{ int st=p,dr=q,x=a[p];
while(st<dr)
{ while(st<dr && a[dr]>=x) dr--;
a[st]=a[dr];
while(st<dr && a[st]<=x) st++;
a[dr]=a[st];
}
a[st]=x;
return st;
}
void quick(int p, int q)
{
int m;
m=divide(p,q);
if(m-1>p) quick(p,m-1);
if(m+1<q) quick(m+1,q);
}
int main()
{
int i,n;
fin>>n;
for(i=1;i<=n;i++)
fin>>a[i];
quick(1,n);
for(i=1;i<=n;i++)
fout<<a[i]<<" ";
return 0;
}