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

सी भाषा में मर्ज सॉर्ट तकनीक की व्याख्या करें

छँटाई तत्वों को आरोही (या) अवरोही क्रम में व्यवस्थित करने की प्रक्रिया है।

सॉर्टिंग के प्रकार

C भाषा पांच छँटाई तकनीक प्रदान करती है, जो इस प्रकार हैं -

  • बबल सॉर्ट (या) एक्सचेंज सॉर्ट
  • चयन क्रम
  • सम्मिलन क्रम(या) रेखीय छँटाई
  • त्वरित छँटाई (या) विभाजन विनिमय छँटाई
  • मर्ज सॉर्ट (या) बाहरी सॉर्ट

मर्ज सॉर्ट करें

मर्ज सॉर्ट एक विभाजित और जीत विधि है। यह एक सरणी को दो आधे में विभाजित करता है, पुनरावर्ती रूप से जीतता है और विलय (गठबंधन) करता है।

आइए एक उदाहरण पर विचार करें जो नीचे दिया गया है -

एक क्रमबद्ध सरणी लें और सरणी को सॉर्ट करने के लिए मर्ज सॉर्ट तकनीक लागू करें।

38, 27, 43, 3, 9, 82, 10

सी भाषा में मर्ज सॉर्ट तकनीक की व्याख्या करें

अब, नीचे दिखाए अनुसार क्रमबद्ध करके एक सरणी को संयोजित करें -

सी भाषा में मर्ज सॉर्ट तकनीक की व्याख्या करें

उदाहरण

मर्ज सॉर्ट तकनीक का उपयोग करके तत्वों को सॉर्ट करने के लिए सी प्रोग्राम निम्नलिखित है -

#include <stdio.h>
#define max 10
int a[11] = { 10, 14, 19, 26, 27, 31, 33, 35, 42, 44, 0 };
int b[10];
void merging(int low, int mid, int high) {
   int l1, l2, i;
   for(l1 = low, l2 = mid + 1, i = low; l1 <= mid && l2 <= high; i++) {
      if(a[l1] <= a[l2])
         b[i] = a[l1++];
      else
         b[i] = a[l2++];
   }
   while(l1 <= mid)
      b[i++] = a[l1++];
   while(l2 <= high)
      b[i++] = a[l2++];
   for(i = low; i <= high; i++)
      a[i] = b[i];
   }
   void sort(int low, int high) {
      int mid;
      if(low < high) {
         mid = (low + high) / 2;
         sort(low, mid);
         sort(mid+1, high);
         merging(low, mid, high);
      } else {
      return;
   }
}
int main() {
   int i;
   printf("List before sorting\n");
   for(i = 0; i <= max; i++)
   printf("%d ", a[i]);
   sort(0, max);
   printf("\nList after sorting\n");
   for(i = 0; i <= max; i++)
   printf("%d ", a[i]);
}

आउटपुट

जब उपरोक्त प्रोग्राम को निष्पादित किया जाता है, तो यह निम्न आउटपुट उत्पन्न करता है -

List before sorting
10 14 19 26 27 31 33 35 42 44 0
List after sorting
0 10 14 19 26 27 31 33 35 42 44

  1. C भाषा में कैरेक्टर ऑपरेशंस की व्याख्या करें

    वर्ण (ए-जेड (या) ए-जेड), अंक (0-9), एक सफेद स्थान, या सी प्रोग्रामिंग भाषा में एक विशेष प्रतीक हो सकता है। घोषणा सी प्रोग्रामिंग में कैरेक्टर ऑपरेशंस के लिए घोषणा निम्नलिखित है - char a= ‘A’; using a character constant. चरित्र इनपुट / आउटपुट फ़ंक्शन कैरेक्टर इनपुट/आउटपुट फंक्शन्स को नी

  1. C भाषा में यूनियन टू पॉइंटर को समझाएं

    एक यूनियन को मेमोरी लोकेशन कहा जाता है, जिसे विभिन्न प्रकार के डेटा के कई वेरिएबल द्वारा साझा किया जाता है। सिंटैक्स वाक्य रचना इस प्रकार है - union uniontag{    datatype member 1;    datatype member 2;    ----    ----    datatype member n; }; उदाह

  1. C भाषा में पॉइंटर एक्सेसिंग की अवधारणा की व्याख्या करें

    पॉइंटर एक वेरिएबल है जो दूसरे वेरिएबल के एड्रेस को स्टोर करता है। सूचक घोषणा, आरंभीकरण और पहुंच निम्नलिखित कथन पर विचार करें - int qty = 179; सूचक घोषित करना int *p; p एक पॉइंटर वेरिएबल है जो दूसरे इंटीजर वेरिएबल का पता रखता है। सूचक का प्रारंभ एड्रेस ऑपरेटर (&) का उपयोग पॉइंटर वेरिएबल को इनिशि