Merge sort splits an array of size into two halves, recursively sorts each half, then merges them. The recursion tree has height .
Why? At each level, you halve the array size. Level has array of size . Level has arrays of size . Level has arrays of size . At level , you have arrays of size .
You stop when array size is , so , giving . Each level does work (merging), so total time is .