C++库中是否存在中值函数

Is there a median function in the C++ library?

本文关键字:函数 存在 是否 C++      更新时间:2023-10-16

我正在试图计算C++中一个排序数组的中值,我想知道C++库中是否有一个内置函数可以做到这一点。

不需要使用函数。要找到奇数项目列表的中值,只需执行

cout << sortedArray[size/2];

其中sortedArray是数组,size是数组的大小。对于一个偶数数组,你应该做这样的

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

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

如果不知道大小,则需要循环遍历数组并计算有多少元素。使用小数是无关紧要的,因为数组的大小总是一个整数。

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