merge sort explained