여기에서 같은 크기의 정렬된 두 배열의 중앙값을 구하는 방법을 살펴보겠습니다. C++ STL을 사용하여 배열 요소를 저장합니다. 두 개의 배열을 얻은 후 하나로 병합합니다. 크기가 같은 두 개의 배열이 병합되면 최종 배열은 항상 짝수의 요소를 보유합니다. 중간 요소 2개를 가져와서 중간값에 대한 평균을 구해야 합니다.
알고리즘
중앙값(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