compare($list[$i + $dist], $order)) { $old = $list[$i]; $list[$i] = $list[$i + $dist]; $list[$i + $dist] = $old; } } $first = self::merge(\array_slice($list, 0, $n / 2), $order); $second = self::merge(\array_slice($list, $n / 2), $order); return \array_merge($first, $second); } }