Merge Sort Implementation