Медиана четырёх чисел

Для чётного количества чисел медианой считается среднее арифметическое двух средних чисел. Другими словами: здесь надо найти максимум и минимум, отбросить их и для оставшихся двух чисел получить среднее арифметическое. Эти операции можно сделать применив 4 сравнения:

template<class T> T _median4 ( const T * a )
{
    nat i1, i2, i3, i4;
    if ( a[0] < a[1] )
    {
        i1 = 0;
        i2 = 1;
    }
    else
    {
        i1 = 1;
        i2 = 0;
    }
    if ( a[2] < a[3] )
    {
        i3 = 2;
        i4 = 3;
    }
    else
    {
        i3 = 3;
        i4 = 2;
    }
    return ( _max ( a[i1], a[i3] ) + _min ( a[i2], a[i4] ) ) / 2;
}

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

Наверх