Вы профиль ваше заявление, и это оказалось узким местом? Или вы пытаетесь переоптимизировать?
Bubblesort тоже может работать очень хорошо. В частности, когда ваши данные уже отсортированы, это на самом деле оптимально и превзойдет любое слияние учебников или сортировку кучи. Если вы не дадите полных ограничений (стоимость замены элементов, требования к стабильности, на месте или нет ...), никто не сможет ответить на этот вопрос полностью.
В любом случае, для четырех элементов довольно очевидно, как реализовать эффективную сортировку слиянием в строке.
Для нечетных (не степенных 2) размеров я считаю, что сортировка с обратной вставкой является обычной оптимизацией. Посмотрите на реализацию сортировки Javas. Я считаю, что он уже имеет такую небольшую оптимизацию массива. Вы проверяли, что процедура сортировки, которую вы бы вызвали, еще не выполняет такого рода оптимизации?