merge sort top down approach