Pagini recente » Cod sursa (job #2429741) | Cod sursa (job #1216300) | Cod sursa (job #1308145) | Cod sursa (job #2523787) | Cod sursa (job #3254092)
#include <fstream>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
const int nmax = 500000;
long long v[nmax + 5];
int n;
int val;
int pivot(int st,int dr)
{
int trv = 1;
while(st<dr)
{
if(v[st] > v[dr])
swap(v[st],v[dr]),trv = 1-trv;
st+=1-trv;
dr-=trv;
}
return st;
}
void quick_sort(int st,int dr)
{
if( st >= dr)
return;
++val;
int p = pivot(st,dr);
quick_sort(st,p-1);
quick_sort(p+1,dr);
}
void full_sort(long long * v,int l)
{
for(int i = 1; i < l/2; i ++){
if(i%2) swap(v[i],v[l-i]);
}
quick_sort(1,l);
}
int main()
{
fin>>n;
for(int i=1;i<=n;i++) fin>>v[i];
full_sort(v,n);
//fout<<val<<'\n';
for(int i=1;i<=n;i++) fout<<v[i]<<' ';
}