小数的中位数是多少?

What is the median value is decimal?

我正在编写一个程序来在 CPP 中查找数组的中位数。我不确定我是否清楚中位数是什么。据我所知,我已经编写了程序来查找中位数,但是当数组为偶数时,我很困惑是否应该打印除中间两个时得到的小数输出的上限值或底值数组中的元素。


using namespace std;

void findMedian(int sortedArray[], int N);
int main()
{
    int ip[4] = {1, 2, 5, 8};
    findMedian(ip, 4);
}

void findMedian(int sortedArray[], int N)
{

    int size = N;
    int median;
    if ((size % 2) != 0)
    {
        median = sortedArray[(size / 2)];
    }
    else
    {
        median = (sortedArray[(size / 2) - 1] + sortedArray[size / 2]) / 2;
    }
    cout << median;
}

在此先感谢,如果有人能给出寻找中位数的字面目的,我将不胜感激,这将帮助我在处理中位数时不再问这个问题。 请原谅我的英语。

在奇数数组中,中位数是唯一的,但在偶数数组中,有两个中位数:下中位数(第 (n/2) 个位置)和上中位数(第 (n/2+1)第)个位置)。我通常总是看到较低的中位数用作偶数数组的 "median"。

在这种情况下,您只需要一个计算偶数和奇数数组的公式:

medianPosition = n/2; // integer division
median = sortedArray[medianPosition];

请注意,它仅适用于索引以零开头的数组(如 C/C++)。