C++求求无序数组array的中位数,当数组个数为偶数时,返回中间两个数中较大的一个数
时间: 2024-09-15 13:15:18 浏览: 40
在C++中,计算无序数组的中位数是一个常见的问题。当数组元素个数为偶数时,确实需要找到中间两个数并返回较大的那个作为中位数。下面是一种简单的解决方案:
1. 首先,你需要对数组进行排序。你可以使用标准库中的`std::sort`函数,它会将数组元素从小到大排列。
```cpp
#include <algorithm>
#include <vector>
// 假设你的数组叫arr,长度为size
std::vector<int> arr = {...}; // 无序数组
int size = arr.size();
std::sort(arr.begin(), arr.end());
```
2. 排序后,由于数组长度是偶数,中位数位于中间两个位置。你可以通过索引来访问这两个元素,并返回较大的一个。
```cpp
if (size % 2 == 0) {
int mid1 = arr[size / 2 - 1];
int mid2 = arr[size / 2];
return std::max(mid1, mid2);
} else {
// 如果数组长度是奇数,直接返回中间的那个元素
return arr[size / 2];
}
```
阅读全文