Ở đây chúng ta sẽ xem cách lấy trung vị của hai mảng đã sắp xếp có cùng kích thước. Chúng ta sẽ sử dụng C ++ STL để lưu trữ các phần tử của mảng. Sau khi nhận được hai mảng, chúng tôi sẽ hợp nhất chúng thành một. Khi hai mảng có cùng kích thước được hợp nhất, thì mảng cuối cùng sẽ luôn chứa số phần tử chẵn. Chúng ta cần lấy hai yếu tố ở giữa, sau đó lấy giá trị trung bình của chúng cho yếu tố trung bình.
Thuật toán
trung vị (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
Ví dụ
#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); }
Đầu ra
Median: 5.5