Pagini recente » Cod sursa (job #1036329) | Cod sursa (job #2020720) | Cod sursa (job #445810) | Cod sursa (job #2127286) | Cod sursa (job #1021292)
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <time.h>
using namespace std;
int v[500000];
int n;
int pivot(int i, int j)
{
srand(time(NULL));
int p= i+rand()%(j-i+1);
return p;
}
void qs(int s, int d)
{
if(s>d)
return;
int p=pivot(s,d);
int vp=v[p];
int i=s, j=d, t;
while(i<=j)
{
while(v[i]<vp)
i++;
while(v[j]>vp)
j--;
if(i<=j)
{
t=v[i];
v[i]=v[j];
v[j]=t;
i++;
j--;
}
}
qs(s,j);
qs(i,d);
}
int main(int argc, char *argv[])
{
ifstream fin("algsort.in");
fin>>n;
int i;
for(i=0;i<n;i++)
fin>>v[i];
qs(0, n-1);
ofstream fout("algsort.out");
for(i=0;i<n;i++)
{
fout<<v[i]<<" ";
}
return EXIT_SUCCESS;
}