verfied merge sort