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

C भाषा में मर्ज सॉर्ट तकनीक समझाना

सॉर्टिंग एलिमेंट्स को आरोही (या अवरोही) क्रम में व्यवस्थित करने की प्रक्रिया है।

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

C भाषा पांच सॉर्टिंग तकनीक प्रदान करती है:

  • बबल सॉर्ट (या) एक्सचेंज सॉर्ट
  • सिलेक्शन सॉर्ट
  • इन्सर्शन सॉर्ट (या) लीनियर सॉर्ट
  • क्विक सॉर्ट (या) पार्टीशन एक्सचेंज सॉर्ट
  • मर्ज सॉर्ट (या) एक्सटर्नल सॉर्ट

मर्ज सॉर्ट

मर्ज सॉर्ट एक डिवाइड एंड कॉन्कर मेथड है। यह ऐरे को दो हिस्सों में विभाजित करता है, रिकर्सिवली कॉन्कर करता है और मर्ज (कॉम्बाइन) करता है।

नीचे दिए गए उदाहरण पर विचार करें:

एक अनसॉर्टेड ऐरे लें और मर्ज सॉर्ट तकनीक लागू करके ऐरे को सॉर्ट करें।

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

अब, सॉर्टिंग करके ऐरे को कॉम्बाइन करें:

उदाहरण

मर्ज सॉर्ट तकनीक का उपयोग करके एलिमेंट्स को सॉर्ट करने का C प्रोग्राम:

#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("सॉर्टिंग से पहले लिस्ट\n");
    for(i = 0; i <= max; i++)
        printf("%d ", a[i]);
    sort(0, max);
    printf("\nसॉर्टिंग के बाद लिस्ट\n");
    for(i = 0; i <= max; i++)
        printf("%d ", a[i]);
}

आउटपुट

सॉर्टिंग से पहले लिस्ट
10 14 19 26 27 31 33 35 42 44 0
सॉर्टिंग के बाद लिस्ट
0 10 14 19 26 27 31 33 35 42 44
  1. C भाषा में कैरेक्टर ऑपरेशन्स को समझें C भाषा में कैरेक्टर ऑपरेशन्स को समझें

    C प्रोग्रामिंग भाषा में कैरेक्टर (A-Z या a-z), अंक (0-9), व्हाइट स्पेस, या विशेष प्रतीक हो सकते हैं। घोषणा (Declaration) C प्रोग्रामिंग में कैरेक्टर ऑपरेशन्स के लिए घोषणा निम्नलिखित है: char a = A; // कैरेक्टर कॉन्स्टेंट का उपयोग करके कैरेक्टर इनपुट/आउटपुट फंक्शन्स कैरेक्टर इनपुट/आउटपुट फंक्शन्स

  1. C भाषा में यूनियन टू पॉइंटर (Union to Pointer) C भाषा में यूनियन टू पॉइंटर (Union to Pointer)

    यूनियन (Union) क्या है? यूनियन एक यूजर-डिफाइंड डेटा प्रकार है जो एक ही मेमोरी स्थान को विभिन्न डेटा प्रकारों के सदस्यों के लिए साझा करने की अनुमति देता है। किसी भी समय केवल एक सदस्य ही मान रख सकता है। यूनियन की घोषणा union यूनियन_नाम { डेटा_प्रकार सदस्य1; डेटा_प्रकार सदस्य2; // ... };

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

    पॉइंटर घोषणा, प्रारंभिकरण और एक्सेस 1. सामान्य चर int qty = 179; // मेमोरी में: पता 1000 पर मान 179 संग्रहीत 2. पॉइंटर घोषणा int *p; // p एक पॉइंटर चर है जो int का पता रख सकता है 3. पॉइंटर प्रारंभिकरण int qty = 175; int *p; p = &qty; // एड्रेस-ऑफ ऑपरेटर (&) से पता प्राप्त करें मेमोरी आर