Медиана 13 чисел

Алгоритм median13 находит медиану 13 чисел за 24 сравнения в любом случае. Этот алгоритм основан на той же идее, что и median5a. Последовательно определяются числа, которые больше или равны, чем ( n + 1 ) / 2 других, и эти числа отбрасываются. Из оставшихся находится максимум - это и будет медиана. Данная реализация этого алгоритма содержит цикл, а значит и дополнительные сравнения ( переменной цикла, а не исходных чисел ). Но при желании цикл можно развернуть, поэтому эти сравнения не учитываются. Мне неизвестно, является ли этот алгоритм оптимальным для наихудшего случая.

Алгоритм реализован в виде шаблона-функции:

template<class T> inline T _median13 ( const T * a ) ...

Исходники находятся в файле median.h.

Наверх