十进制的中位数是多少?

What is the median value is decimal?

本文关键字:多少 中位数 十进制      更新时间:2023-10-16

我正在编写一个程序来查找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( 位置的中位数(。我通常总是看到较低的中位数被用作偶数组的"中位数"。

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

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

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