इस समस्या में, हमें n पूर्णांकों की एक सरणी दी जाती है और हम सरणी में K तत्व जोड़ रहे हैं और फिर परिणामी सरणी का माध्यिका ज्ञात करते हैं। शर्त को देखते हुए, N+k विषम है।
समस्या को समझने के लिए एक उदाहरण लेते हैं,
इनपुट -
array = {23, 65, 76, 67} ; k =1 आउटपुट -
67
इस समस्या को हल करने के लिए, हम दिए गए तत्वों को आरोही क्रम में क्रमबद्ध करेंगे और फिर सरणी के अंत में k तत्व जोड़ेंगे यानी हम k बड़े तत्व लेंगे।
शर्त दी गई है कि n+k विषम है। तो, माध्यिका की गणना सूत्र का उपयोग करके की जा सकती है, (n+k)/2 ।
उदाहरण
माध्यिका खोजने का कार्यक्रम,
#include <bits/stdc++.h>
using namespace std;
int findMedianAfterK(int arr[], int n, int K) {
sort(arr, arr + n);
return arr[((n + K)/2)];
}
int main() {
int array[] = {3,56, 8, 12, 67, 10 };
int k = 3;
int n = sizeof(array) / sizeof(array[0]);
cout<<"The median after adding "<<k<<" elements is "<<findMedianAfterK(array, n, k);
return 0;
} आउटपुट
The median after adding 3 elements is 56