Pagini recente » Cod sursa (job #2713857) | Cod sursa (job #1759735) | Cod sursa (job #2204720) | Cod sursa (job #79701) | Cod sursa (job #484201)
Cod sursa(job #484201)
#include<fstream>
#define inf "algsort.in"
#define outf "algsort.out"
#define NMax 500100
using namespace std;
fstream f(inf,ios::in),g(outf,ios::out);
int v[NMax],n;
void read()
{
f>>n;
for(int i=1; i<=n; i++ ) f>>v[i];
}
int part(int li,int ls)
{
int st = li, dr = ls;
int x=0,y=-1;
while( st<dr )
{
if( v[st]>v[dr] )
{
swap( v[st], v[dr] );
int t=y;
y = -x;
x = -t;
}
st += x; dr += y;
}
return st;
}
void sort(int li,int ls)
{
if( li<ls )
{
int k = part(li,ls);
sort(li,k);
sort(k+1,ls);
}
}
void solve()
{
sort(1,n);
for(int i=1; i<=n; i++) g<<v[i]<<" ";
}
int main()
{
read(); solve();
f.close(); g.close();
return 0;
}