Pagini recente » Cod sursa (job #1736524) | Cod sursa (job #1722013) | Cod sursa (job #3148135) | Cod sursa (job #1173937) | Cod sursa (job #2694653)
#include <fstream>
#define DMAX 500002
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int a[DMAX];
int partitioneaza(int a[], int p, int q)
{
int i,j,x,k;
i=p+1;
j=q;
x=a[p];
while(i<=j)
{
if(a[i]<=x)
i++;
if(a[j]>=x)
j--;
if(i<j&&a[i]>x&&a[j]<x)
{
swap(a[i],a[j]);
i++;
j--;
}
}
k=i-1;
swap(a[k],a[p]);
return k;
}
void QuickSort(int a[], int p, int q)
{
int k;
if(p<q)
{
k=partitioneaza(a,p,q);
QuickSort(a,p,k-1);
QuickSort(a,k+1,q);
}
}
int main()
{
int n,i;
fin>>n;
for(i=0;i<n;i++)
fin>>a[i];
QuickSort(a,0,n-1);
for(i=0;i<n;i++)
fout<<a[i]<<' ';
return 0;
}