इस समस्या में, हमें 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