genericmergesort.c