Pagini recente » Cod sursa (job #1908255) | Cod sursa (job #2413214) | Cod sursa (job #2595803) | Cod sursa (job #1892821) | Cod sursa (job #379158)
Cod sursa(job #379158)
#include<fstream>
#define inf "algsort.in"
#define outf "algsort.out"
#define NMax 500001
using namespace std;
fstream f(inf,ios::in),g(outf,ios::out);
int v[NMax];
int N;
void Citire()
{
f>>N;
for(int i=1;i<=N;i++)f>>v[i];
}
int Partition(int a[],int p,int q)
{
int pivot;
int i,j;
int aux;
i=p;
pivot=a[p];
for(j=p+1;j<=q;j++)
{
if(a[j]<=pivot)
{
i++;
aux=a[i];
a[i]=a[j];
a[j]=aux;
}
}
aux=a[p];
a[p]=a[i];
a[i]=aux;
return i;
}
void QuickSort(int a[],int p,int q)
{
int r;
if(p<q)
{
r=Partition(a,p,q);
QuickSort(a,p,r-1);
QuickSort(a,r+1,q);
}
}
void Afisare()
{
for(int i=1;i<=N;i++)g<<v[i]<<" ";
}
int main()
{
Citire();
QuickSort(v,1,N);
Afisare();
f.close();
g.close();
return 0;
}