Pagini recente » Cod sursa (job #1794521) | Cod sursa (job #2096419) | Cod sursa (job #548450) | Cod sursa (job #540923) | Cod sursa (job #1983307)
#include<cstdio>
#include<cstdlib>
#include<ctime>
#define MAX_N 500000
using namespace std;
int n, v[MAX_N];
void QuickSort(int p, int q)
{
int left = p, right = q, pivot = v[p + rand() % (q - p + 1)];
while(left <= right)
{
while(v[left] < pivot) left++;
while(v[right] > pivot) right--;
if(left <= right)
{
int aux = v[left];
v[left] = v[right];
v[right] = aux;
left++;
right--;
}
}
if(p < right) QuickSort(p,right);
if(left < q) QuickSort(left,q);
}
int main()
{
int i;
FILE *fin, *fout;
fin = fopen("algsort.in","r");
fout = fopen("algsort.out","w");
fscanf(fin,"%d",&n);
for(i=0; i<n; i++)
fscanf(fin,"%d",&v[i]);
fclose(fin);
srand(time(NULL));
QuickSort(0,n-1);
for(i=0; i<n; i++)
fprintf(fout,"%d ",v[i]);
fprintf(fout,"\n");
fclose(fout);
return 0;
}