void mergeSort(int list[], int size)
{
  int   i;
  int   mid = size/2;
  int   *tmp;
  if (size > 1) {
     mergeSort(&list[0], mid);
     mergeSort(&list[mid], size-mid);
     tmp = mergeList(&list[0], mid, &list[mid], size-mid);
    
     if (tmp != NULL) {
       for (i = 0; i < size; i++) {
          list[i] = tmp[i];
       }
     }
     free(tmp);
  }
}
for Java code see Main p. 607