Pagini recente » Monitorul de evaluare | Cod sursa (job #199218) | Cod sursa (job #1852835) | Cod sursa (job #1717751) | Cod sursa (job #1725908)
#include<stdio.h>
void quicksort( int v[], int primElement, int ultimElement)
{
int i=primElement;
int j=ultimElement;
int aux;
int pivot = v[(i+j)/2];
do
{
while( (i < ultimElement) && ( v[i] < pivot)) i++;
while( (j > primElement) && ( v[j] > pivot)) j--;
if ( i<=j )
{
aux=v[i];
v[i]=v[j];
v[j]=aux;
i++;
j--;
}
}while(i<=j);
if( primElement < j) quicksort( v, primElement, j);
if( i < ultimElement) quicksort(v, i, ultimElement);
}
int main()
{
FILE *inputFile, *outputFile;
inputFile=fopen("algsort.in","r");
outputFile=fopen("algsort.out","w");
int n, i;
int v[200000];
fscanf(inputFile, "%d", &n);
for(i=0; i<n; i++)
{
fscanf(inputFile, "%d", &v[i]);
}
quicksort(v, 0, n-1);
for(i=0; i<n; i++)
{
fprintf(outputFile, "%d ", v[i]);
}
return 0;
}