C / C ++程序用于两个大小相同的排序数组的中位数?
在这里,我们将看到如何获取相同大小的两个排序数组的中位数。我们将使用C++STL存储数组元素。得到两个数组后,我们将它们合并为一个。当两个相同大小的数组合并时,最终数组将始终容纳偶数个元素。我们需要取两个中间元素,然后取它们的平均值作为中位数。
算法
中位数(arr1,arr2)
Begin arr3 := array after merging arr1 and arr2 sort arr3 len := length of arr3 mid := len/2 median := (arr3[mid] + arr3[mid-1])/2 return median End
示例
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
float median(vector<int> arr1, vector<int> arr2) {
vector arr3(arr1.size() + arr2.size());
merge(arr1.begin(), arr1.end(), arr2.begin(), arr2.end(), arr3.begin());
sort(arr3.begin(), arr3.end());
int len = arr3.size();
int mid = len/2;
return float(arr3[mid] + arr3[mid-1])/2;
}
main() {
vector<int> arr1 = {1, 3, 4, 6, 7};
vector<int> arr2 = {4, 5, 7, 8, 9};
cout << "Median: " << median(arr1, arr2);
}输出结果
Median: 5.5
热门推荐
9 足球队祝福语简短
10 结婚祝福语简短精辟好记
11 初六开工祝福语简短
12 喜得孙子祝福语简短独特
13 三十三句祝福语简短
14 送外卖祝福语大全简短
15 商业mc祝福语大全简短
16 六十岁大寿祝福语简短
17 怎么说祝福语简短
18 求简短的职场祝福语