Pagini recente » Cod sursa (job #18992) | Cod sursa (job #397724) | Cod sursa (job #1511301) | Cod sursa (job #2856567) | Cod sursa (job #1513269)
#include <fstream>
#include <iostream>
using namespace std;
#include <cmath>
#include <ctime>
#include <cstdlib>
#define LE 500613
void qsort(int st,int dr,int A[])
{
if (st>=dr) return;
int P=st+(rand()%(dr-st+1));
int val=A[P],i,left=st-1;
swap(A[dr],A[P]);
for(i=st;i<=dr;++i)
if (A[i]<val||(A[i]==val&&i<=P))
{
++left;
swap(A[i],A[left]) ;
}
qsort(st,left-1,A);
qsort(left+1,dr,A);
}
int A[LE];
ifstream f("algsort.in");
ofstream g("algsort.out");
int main()
{
srand(time(0));
int n,i;
f>>n;
for( i=1;i<=n;++i) f>>A[i];
qsort(1,n,A);
for(i=1;i<=n;++i) g<<A[i]<<" ";
return 0;
}