Оптимальная медиана выбора медиан - 3 блока элементов против 5 блоков элементов?

Я работаю над реализацией варианта быстрой сортировки, основанной на алгоритме выбора для выбора хорошего элемента поворота. . Обычная мудрость состоит в том, чтобы разделить массив на 5-элементные блоки, взять медиану каждого из них, а затем рекурсивно применить тот же подход блокировки к полученным медианам, чтобы получить «медианное значение медиан».

Что меня смущает, так это выбор блоков из 5 элементов, а не из 3 элементов. Мне кажется, что с 5-элементными блоками вы выполняете n / 4 = n / 5 + n / 25 + n / 125 + n / 625 + ... медиана из 5 операций, тогда как с 3-элементными блоками вы выполняете n / 2 = n / 3 + n / 9 + n / 27 + n / 81 + ... медиана из 3 операций. Поскольку каждая медиана из 5 представляет собой 6 сравнений, а каждая медиана из 3 - это 2 сравнения, в результате получается 3 * n / 2 сравнений с использованием медианы 5 и n сравнения с использованием медианы 3.

Может ли кто-нибудь объяснить это несоответствие, и какова может быть мотивация использования 5-элементных блоков? Я не знаком с обычными методами применения этих алгоритмов, так что, возможно, есть какой-то способ вырезать некоторые шаги и при этом подойти «достаточно близко» к медиане, чтобы обеспечить хороший поворот, и этот подход лучше работает с 5-элементными блоками?

10
задан R.. 11 October 2010 в 16:25
поделиться