एल्गोरिदम
दोनों सॉर्टेड एरे और उनके प्रारंभ और अंत इंडेक्स के साथ median() फ़ंक्शन बनाएं। पहले एरे की लंबाई की गणना करें (e1 - s1)। यदि लंबाई 1 या 2 है, तो सम या विषम लंबाई के अनुसार माध्यिका की गणना करें और परिणाम प्रिंट करें। जांचें कि क्या दोनों व्यक्तिगत माध्यिकाएं समान हैं, यदि हां तो परिणाम प्रिंट करें। यदि m1 > m2 तो संयुक्त माध्यिका या तो पहले एरे के पहले आधे में या दूसरे एरे के दूसरे आधे में होगी। यदि m1 < m2 तो संयुक्त माध्यिका या तो पहले एरे के दूसरे आधे में या दूसरे एरे के पहले आधे में होगी। अद्यतन प्रारंभ और अंत इंडेक्स के साथ median() को पुनरावर्ती रूप से कॉल करें।
उदाहरण कोड
#include <iostream>
using namespace std;
void median(float a1[], int s1, int e1, float a2[], int s2, int e2) {
float m1, m2;
if ((e1 - s1 + 1) % 2 == 0) {
if (e1 - s1 == 1) {
m1 = ((a1[s1] < a2[s2] ? a1[s1] : a2[s2]) + (a1[e1] > a2[e2] ? a1[e1] : a2[e2])) / 2;
cout << m1;
return;
}
m1 = (a1[(e1 + s1) / 2] + a1[(e1 + s1) / 2 + 1]) / 2;
m2 = (a2[(e2 + s2) / 2] + a2[(e2 + s2) / 2 + 1]) / 2;
if (m1 == m2) {
cout << m1;
return;
} else {
if (m1 > m2)
median(a1, s1, (e1 + s1) / 2 + 1, a2, (e2 + s2) / 2, e2);
else
median(a1, (e1 + s1) / 2, e1, a2, s2, (e2 + s2) / 2 + 1);
}
} else {
if (e1 - s1 == 0) {
m1 = (a1[s1] + a2[s2]) / 2;
cout << m1;
return;
}
m1 = a1[(e1 + s1) / 2];
m2 = a2[(e2 + s2) / 2];
if (m1 == m2) {
cout << m1;
return;
} else {
if (m1 > m2)
median(a1, s1, (e1 + s1) / 2, a2, (e2 + s2) / 2, e2);
else
median(a1, (e1 + s1) / 2, e1, a2, s2, (e2 + s2) / 2);
}
}
return;
}
int main() {
int n1, n2, i;
cout << "\nपहले एरे के लिए तत्वों की संख्या दर्ज करें: ";
cin >> n1;
float a1[n1];
for (i = 0; i < n1; i++) {
cout << "पहले एरे के लिए तत्व " << i+1 << ": ";
cin >> a1[i];
}
cout << "\nदूसरे एरे के लिए तत्वों की संख्या दर्ज करें: ";
cin >> n2;
float a2[n2];
for (i = 0; i < n2; i++) {
cout << "दूसरे एरे के लिए तत्व " << i+1 << ": ";
cin >> a2[i];
}
cout << "माध्यिका है ";
median(a1, 0, n1-1, a2, 0, n2-1);
return 0;
}आउटपुट
पहले एरे के लिए तत्वों की संख्या दर्ज करें: 5 पहले एरे के लिए तत्व 1: 6 पहले एरे के लिए तत्व 2: 7 पहले एरे के लिए तत्व 3: 9 पहले एरे के लिए तत्व 4: 10 पहले एरे के लिए तत्व 5: 11 दूसरे एरे के लिए तत्वों की संख्या दर्ज करें: 5 दूसरे एरे के लिए तत्व 1: 60 दूसरे एरे के लिए तत्व 2: 70 दूसरे एरे के लिए तत्व 3: 90 दूसरे एरे के लिए तत्व 4: 100 दूसरे एरे के लिए तत्व 5: 110 माध्यिका है 35