Listing 1 A Minimal Quicksort

my_qsort(int data[],int first,int last)
{
   int i;
   int j;
   int temp;
   
   i = first + 1;
   j = last;
   while ( i <= j )
   {
      while ( data[i] <= data[first] && i <= last )
         i++;
      while ( data[j] >= data[first] && j > first )
         j--;
      if( j > i )
      {
         temp = data[i];
         data[i] = data[j];
         data[j] = temp;
      }
   }
   temp = data [first];
   data[first] = data[j];
   data[j] = temp;
   if ( (j-first) > 1 )
      my_qsort( data, first, j-1 );
   if ( (last-j) > 1 )
      my_qsort( data, j+1, last );
}