void qintsort( int arr[], int lidx, int ridx)
{
   int k, buffer;
   int e;
   
   int mid;
 
   if(lidx >= ridx) return;

   mid = (lidx + ridx)/2;
  
   buffer = arr[lidx];
   arr[lidx] = arr[mid];
   arr[mid] = buffer;

   e = lidx;

   for(k = lidx+1; k <= ridx; k++)
   {
      if(arr[k] < arr[lidx])
      {
         e++;
         buffer = arr[e];
         arr[e] = arr[k];
         arr[k] = buffer;
      }
   }
   
   buffer = arr[lidx];
   arr[lidx] = arr[e];
   arr[e] = buffer;

   qintsort(arr, lidx, e-1);
   qintsort(arr, e+1, ridx);
}
