Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> प्रोग्रामिंग

दो क्रमबद्ध सरणी का माध्यिका


माध्यिकाएं मध्य संख्याएं हैं, दूसरे शब्दों में, माध्यिका मान एक क्रमबद्ध सूची में मध्य अवलोकन है। यह 50% के संचयी प्रतिशत के अनुरूप है।

दो सरणियों का आकार समान होना चाहिए, हम पहले दो अलग-अलग सरणियों का माध्यिका पाएंगे, फिर दो सूचियों की वास्तविक माध्यिका प्राप्त करने के लिए अलग-अलग माध्यिकाओं की तुलना करेंगे।

इनपुट और आउटपुट

Input:
Two sorted array are given.
Array 1: {1, 2, 3, 6, 7}
Array 2: {4, 6, 8, 10, 11}
Output:
The median from two array. Here the median value is 6.
Merge the given lists into one. {1, 2, 3, 4, 6, 6, 7, 8, 10, 11}
From the merged list find the average of two middle elements. here (6+6)/2 = 6.

एल्गोरिदम

माध्यिका(सूची, n)

इनपुट: डेटा की सूची, और डेटा की संख्या।

आउटपुट: दी गई सूची का माध्यिका।

Begin
   if the list has even number of data, then
      return (list[n/2] + list[n/2-1])/2
   else
      return list[n/2]
End

findMedian(list1, list2, n)

इनपुट - दो क्रमबद्ध सूचियाँ, और सूचियों की संख्या।

आउटपुट - दो क्रमबद्ध सूचियों में से माध्यिका।

Begin
   if n <= 0, then
      it is invalid, and return invalid number
   if n = 1, then
      return (list1[0] + list2[0])/2
   if n = 2, then
      return ((max of list1[0], list2[0]) + (min of list1[1], list2[1]))/2
   med1 := median(list1, n)
   med2 := median(list2, n)

   if med1 = med2, then
      return med1
   if med1 < med2, then
      if item has even number of data, then
         subList := data from list2, from 0 to n/2 – 1 data
         return findMedian(subList, list1, n – (n/2) + 1)
      subList := data from list2, from 0 to n/2 data
      return findMedian(subList, list2, n – (n/2))
End

उदाहरण

#include<iostream>
using namespace std;

int median(int list[], int n) {
   if (n%2 == 0)     //when array containts even number of data
      return (list[n/2] + list[n/2-1])/2;
   else        //for odd number of data
      return list[n/2];
}

intfindMedian(int list1[], int list2[], int n) {
   if (n <= 0)
      return -1;      //invalid length of lists
   if (n == 1)
      return (list1[0] + list2[0])/2;    //for single element simply get average from two array
   if (n == 2)
      return (max(list1[0], list2[0]) + min(list1[1], list2[1])) / 2;

   int med1 = median(list1, n);     //Find median from first array
   int med2 = median(list2, n);     //Find median from second array

   if (med1 == med2)    //when both medians are same, they are the final median
       return med1;
   if (med1 < med2) {
       if (n % 2 == 0)
          return findMedian(list1 + n/2 - 1, list2, n - n/2 +1);
       return findMedian(list1 + n/2, list2, n - n/2);
   }

   if (n % 2 == 0)    //when med1 > med2
      return findMedian(list2 + n/2 - 1, list1, n - n/2 + 1);
   return findMedian(list2 + n/2, list1, n - n/2);
}

int main() {
   int list1[] = {1, 2, 3, 6, 7};
   int list2[] = {4, 6, 8, 10, 11};

   int n1 = 5;
   int n2 = 5;

   if (n1 == n2)
      cout<< "Median is "<<findMedian(list1, list2, n1);
   else
      cout<< "Doesn't work for lists of unequal size";
}

आउटपुट

Median is 6

  1. जावास्क्रिप्ट में किसी सरणी के माध्यिका की गणना करना जावास्क्रिप्ट में किसी सरणी के माध्यिका की गणना करना

    जावास्क्रिप्ट में किसी सरणी के माध्यिका की गणना के लिए कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title&

  1. सी भाषा में सरणी के अलग-अलग तत्वों को प्रिंट करें सी भाषा में सरणी के अलग-अलग तत्वों को प्रिंट करें

    पूर्णांक तत्वों की एक सरणी के साथ, कार्य डुप्लिकेट मानों को हटाना और अलग-अलग तत्वों को क्रमबद्ध तरीके से प्रिंट करना है। नीचे दी गई एक सरणी है जो फैशन 4, 6, 5, 3, 4, 5, 2, 8, 7 और 0 में पूर्णांक प्रकार के मानों को संग्रहीत करती है, परिणाम क्रमबद्ध तत्वों को 0, 2, 3, 4 के रूप में प्रिंट करेगा। 4, 5,

  1. - पायथन में सॉर्ट किए गए ऐरे को मर्ज करें

    मान लीजिए कि हमारे पास दो क्रमबद्ध सरणी A और B हैं। हमें उन्हें मर्ज करना है और केवल एक क्रमबद्ध सरणी C बनाना है। सूचियों का आकार भिन्न हो सकता है। उदाहरण के लिए, मान लीजिए A =[1,2,4,7] और B =[1,3,4,5,6,8], तो मर्ज की गई सूची C होगी [1,1,2,3,4, 4,5,6,7,8] इसे हल करने के लिए, इन चरणों का पालन करें