#include <stdio.h>
#include <stdlib.h>
#define N_DATA 50000
void swap ( int data[], int i, int j )
{
int buf;
buf = data[i];
data[i] = data[j];
data[j] = buf;
}
void quickSort ( int data[], int n )
{
int i;
int last;
if ( n <= 1 )
{
return;
}
swap ( data, 0, rand() % n );
for ( i=1, last=0; i < n; i++ )
{
if ( data[i] < data[0] )
{
last++;
swap ( data, last, i );
}
}
swap ( data, 0, last );
quickSort ( data, last );
quickSort ( data+last+1, n-last-1 );
}
int main ( void )
{
int i;
int data[N_DATA];
FILE* fp;
fp = fopen ( "data.txt", "w" );
for ( i=0; i < N_DATA; i++ )
{
data[i] = rand();
}
quickSort ( data, N_DATA );
for ( i=0; i < N_DATA; i++ )
{
fprintf ( fp, "%d\n", data[i] );
}
fclose ( fp );
}