एल्गोरिदम
Median() फ़ंक्शन में दो सरणी a1[], a2[] और n = तत्वों की संख्या लें। i और j को 0 से प्रारंभ करें, n1 और n2 को -1 से। 0 से n तक लूप चलाएं: यदि i == n तो n1 = n2, n2 = a2[0], लूप तोड़ें। अन्यथा यदि j == n तो n1 = n2, n2 = a1[0], लूप तोड़ें। यदि a1[i] < a2[j] तो n1 = n2, n2 = a1[i], i बढ़ाएं। अन्यथा n1 = n2, n2 = a2[j], j बढ़ाएं। अंत में n1 और n2 का औसत लौटाएं।
उदाहरण कोड
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int Median(int a1[], int a2[], int n) {
int i = 0, j = 0, c;
int n1 = -1, n2 = -1;
for (c = 0; c <= n; c++) {
if (i == n) {
n1 = n2;
n2 = a2[0];
break;
} else if (j == n) {
n1 = n2;
n2 = a1[0];
break;
}
if (a1[i] < a2[j]) {
n1 = n2;
n2 = a1[i];
i++;
} else {
n1 = n2;
n2 = a2[j];
j++;
}
}
return (n1 + n2) / 2;
}
int main() {
int n1, n2, i;
cout << "\nपहले एरे के लिए तत्वों की संख्या दर्ज करें: ";
cin >> n1;
int a1[n1];
for (i = 0; i < n1; i++) {
cout << "पहले एरे के लिए तत्व " << i+1 << ": ";
cin >> a1[i];
}
cout << "\nदूसरे एरे के लिए तत्वों की संख्या दर्ज करें: ";
cin >> n2;
int a2[n2];
for (i = 0; i < n2; i++) {
cout << "दूसरे एरे के लिए तत्व " << i+1 << ": ";
cin >> a2[i];
}
if (n1 == n2)
cout << "माध्यिका है " << Median(a1, a2, n1);
else
cout << "असमान आकार के एरे के लिए काम नहीं करता";
return 0;
}आउटपुट
पहले एरे के लिए तत्वों की संख्या दर्ज करें: 5 पहले एरे के लिए तत्व 1: 2 पहले एरे के लिए तत्व 2: 4 पहले एरे के लिए तत्व 3: 6 पहले एरे के लिए तत्व 4: 7 पहले एरे के लिए तत्व 5: 9 दूसरे एरे के लिए तत्वों की संख्या दर्ज करें: 5 दूसरे एरे के लिए तत्व 1: 20 दूसरे एरे के लिए तत्व 2: 40 दूसरे एरे के लिए तत्व 3: 60 दूसरे एरे के लिए तत्व 4: 70 दूसरे एरे के लिए तत्व 5: 90 माध्यिका है 20