Pagini recente » Cod sursa (job #2333262) | Cod sursa (job #2430616) | Cod sursa (job #1460363) | Cod sursa (job #230174) | Cod sursa (job #1021183)
#include <cstdlib>
#include <iostream>
#include <fstream>
using namespace std;
int v[500000];
int n;
int pivot(int i, int j)
{
int si=0, sj=-1, t;
while(i<j)
{
if(v[i]>v[j])
{
v[i]=v[i]^v[j];
v[j]=v[i]^v[j];
v[i]=v[i]^v[j];
t=-si;
si=-sj;
sj=t;
}
i+=si;
j+=sj;
}
return i;
}
void qs(int i, int j)
{
if(i<j)
{
int p = pivot(i,j);
qs(i, p-1);
qs(p+1, j);
}
}
int main(int argc, char *argv[])
{
ifstream fin("algsort.in");
fin>>n;
int i;
for(i=0;i<n;i++)
fin>>v[i];
qs(0, n-1);
ofstream fout("algsort.out");
for(i=0;i<n;i++)
fout<<v[i]<<" ";
return EXIT_SUCCESS;
}