bottom up mergesort