C ++库中是否有中值函数?

时间:2017-02-03 21:58:36

标签: c++

我正在尝试计算C ++中已排序数字的中位数,我想知道C ++库中是否有内置函数来执行此操作。

2 个答案:

答案 0 :(得分:7)

无需使用功能。要查找具有奇数项目的列表的中位数,只需执行

cout << sortedArray[size/2];

其中sortedArray是数组,size是数组的大小。 对于具有偶数的数组,您应该执行类似这样的操作

cout << (sortedArray[size/2] + sortedArray[(size/2) - 1])/2

换句话说,取n / 2元素和n / 2-1元素的平均值。

如果你不知道大小,你需要遍历数组并计算有多少元素。使用小数执行它是无关紧要的,因为数组的大小始终是整数。

答案 1 :(得分:0)

如果知道排序数组的大小,可以用O(1)计算其中位数。 当大小未知时(是链表还是什么?),那么计算中位数就会在经典计算机上取O(n)。