int partition(int list[], int size)
{
   int k;
   int mid = size/2;
   int index = 0;
   swap(&list[0], &list[mid]);
 
   for (k = 1; k < size; k++)
   {
       if (list[k] < list[0])
       {
           index++;
           swap(&list[index], &list[k]);
       }
   }
  
   swap(&list[0], &list[index]);
  
   return index;
}