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

0 c++

我试图计算C++中排序数组的中位数,我想知道C++库中是否有内置函数来执行此操作.

Gab*_*Gab 7

没有必要使用功能.要查找具有奇数项目的列表的中位数,请执行此操作

cout << sortedArray[size/2];
Run Code Online (Sandbox Code Playgroud)

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

cout << (sortedArray[size/2] + sortedArray[(size/2) - 1])/2
Run Code Online (Sandbox Code Playgroud)

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

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

  • 如果有偶数个元素怎么办?你想要把两者的平均值放在中间.例如,2 4 6 8的中位数应为5. (3认同)
  • 对于第二种情况,我认为你想要`size/2 - 1`和`size/2`作为索引. (3认同)