Merge sort slice را نصف می‌کند، هر نیمه را بازگشتی مرتب می‌کند و با برداشتن مکرر کوچک‌ترین عنصر ابتدای دو نیمه آن‌ها را ادغام می‌کند. وقتی دو عنصر برابرند اول سمت چپ را برمی‌دارد و همین آن را پایدار می‌کند. هزینه‌اش یک بافر موقت هم‌اندازه‌ی ورودی است.