Pagini recente » Cod sursa (job #2040214) | Cod sursa (job #288129) | Cod sursa (job #854968) | Cod sursa (job #1248679) | Cod sursa (job #1281128)
#include <iostream>
#include <fstream>
#define nmax 500001
using namespace std;
ifstream fin("algsort.in ");
ofstream fout("algsort.out");
int n , a[nmax];
void Citire()
{
int i;
fin>>n;
for(i=1;i<=n;i++)
fin>>a[i];
}
void Afisare()
{
int i;
for(i=1;i<=n;i++)
fout<<a[i]<<" ";
}
int Pivot(int i ,int j)
{
int st,dr,x;
st=i; dr=j; x=a[i];
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;
}
void Qsort(int i , int j)
{
int m;
m=Pivot(i,j);
if(m-1 > i) Qsort(i,m-1);
if(m+1 < j) Qsort(m+1,j);
}
int main()
{
Citire();
Qsort(1,n);
Afisare();
return 0;
}