Pagini recente » Cod sursa (job #1090267) | Cod sursa (job #1203200) | Cod sursa (job #2937359) | Cod sursa (job #1547959) | Cod sursa (job #1240598)
#include <fstream>
#include<stdlib.h>
#include<time.h>
using namespace std;
#define MX 500010
ifstream f1("algsort.in");
ofstream f2("algsort.out");
int a[MX],n,i;
void quick(int st, int dr)
{
if (st>=dr) return;
int x= a[rand() % (dr-st+1) +st], i=st, j=dr,t;
while (i<=j)
{
while (i<dr && a[i]<x ) i++;
while (j>st && a[j]>x ) j--;
if (i<=j)
{ t=a[i];
a[i]=a[j];
a[j]=t;
i++; j--;}
}
if (j>st)
quick(st,j);
if (i<dr)
quick(i,dr);
}
int main()
{
f1>>n;
for (i=1;i<=n;i++)
f1>>a[i];
srand(time(NULL) );
quick(1,n);
for (i=1;i<=n;i++)
f2<<a[i]<<" ";
f2.close();
return 0;
}