Pagini recente » Cod sursa (job #1480807) | Cod sursa (job #1797128) | Cod sursa (job #2325624) | Cod sursa (job #1186758) | Cod sursa (job #639705)
Cod sursa(job #639705)
#include<fstream.h>
#include<iostream.h>
fstream f("algsort.in",ios::in), g("algsort.out",ios::out);
int divide(int st,int dr);
void quicksort(int p,int q);
int a[500100],n;
int main()
{
int i;
f>>n;
for(i=0;i<n;i++)
f>>a[i];
quicksort(0,n-1);
for(i=0;i<n;i++)
g<<a[i]<<" ";
return 0;
}
void quicksort(int p,int q)
{
int m=divide(p,q);
if(m-1>p)
quicksort(p,m-1);
if(m+1<q)
quicksort(m+1,q);
}
int divide(int st,int dr)
{
int x=a[st];
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;
}