def mSrt(ary) p ary if (l=ary.size)>1 then mMrg(mSrt(ary.take(l/2)),mSrt(ary.drop(l/2))) else ary end end def mMrg(a1,a2) if a1.size==0 then a2 elsif a2.size==0 then a1 elsif a1[0]>a2[0] then a1[0,1]+mMrg(a1.drop(1),a2) else a2[0,1]+mMrg(a1,a2.drop(1)) end end def mMrg_t(a1,a2,r=[]) if a1.size==0 then r+a2 elsif a2.size==0 then r+a1 elsif a1[0]>a2[0] then mMrg_t(a1.drop(1),a2,r+a1[0,1]) else mMrg_t(a1,a2.drop(1),r+a2[0,1]) end end