chapter 12 - mergesort