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

ऑड-इवन सॉर्ट (ब्रिक सॉर्ट) के लिए C/C++ प्रोग्राम?


ऑड-इवन सॉर्ट जिसे ब्रिक सॉर्ट के नाम से भी जाना जाता है, बबल सॉर्ट के समान एक छंटाई तकनीक है। यह छंटाई तकनीक दो चरणों में विभाजित है: ऑड चरण और इवन चरण, ये दोनों चरण हर पुनरावृत्ति में एक साथ तब तक चलते हैं जब तक सभी एलिमेंट्स क्रमबद्ध नहीं हो जाते।

इस प्रोग्रामिंग तकनीक का ऑड चरण बबल सॉर्ट की तरह काम करता है लेकिन केवल उन एलिमेंट्स पर जिनका इंडेक्स ऑड (विषम) है।

इसी तरह, इवन चरण केवल उन एलिमेंट्स पर काम करता है जिनका इंडेक्स इवन (सम) है।

इस अवधारणा को और स्पष्ट करने के लिए एक उदाहरण लेते हैं:

Input: a[]={3,5,7,6,1,4,2} Output: 1 2 3 4 5 6 7

व्याख्या

इवन-ऑड सॉर्ट जिसे ब्रिक सॉर्ट के नाम से भी जाना जाता है, एक सरल छंटाई तकनीक है जिसे समानांतर प्रसंस्करण (parallel processing) को ध्यान में रखकर डिज़ाइन किया गया था। यह अपने एलिमेंट्स को क्रमबद्ध करने के लिए तुलनाओं का उपयोग करता है। तुलना सभी ऑड/इवन युग्मों और उनके आसन्न एलिमेंट्स पर होती है। यदि कोई युग्म गलत क्रम में है तो क्रम को सही करने के लिए स्वैप किया जाता है। यह प्रक्रिया तब तक चलती है जब तक लिस्ट क्रमबद्ध नहीं हो जाती। चूंकि इसे समानांतर प्रक्रियाओं के लिए विकसित किया गया था, यह प्रति प्रोसेसर एक मान ले सकता है और दोनों प्रक्रियाएं एक्सचेंज-कंपेयर प्रकार के ऑपरेशन पर समवर्ती रूप से काम करती हैं। यह एल्गोरिदम मूल रूप से प्रस्तुत किया गया था, और ऐसे प्रोसेसर पर कुशल दिखाया गया था।

उदाहरण

#include <stdio.h>
#include <math.h>
#define MAX 7
void swap(int *,int *);
void oddeven_sort(int *);
int main() {
    int a[]={3,5,7,6,1,4,2}, i;
    oddeven_sort(a);
    for (i = 0;i < MAX;i++) {
        printf(" %d", a[i]);
    }
}
void swap(int * x, int * y) {
    int temp;
    temp = *x;
    *x = *y;
    *y = temp;
}
void oddeven_sort(int * x) {
    int sort = 0, i;
    while (!sort) {
        sort = 1;
        for (i = 1;i < MAX;i += 2) {
            if (x[i] > x[i+1]) {
                swap(&x[i], &x[i+1]);
                sort = 0;
            }
        }
        for (i = 0;i < MAX - 1;i += 2) {
            if (x[i] > x[i + 1]) {
                swap(&x[i], &x[i + 1]);
                sort = 0;
            }
        }
    }
}

आउटपुट

1234567

  1. nवीं कैटलन संख्या (nth Catalan Number) के लिए C/C++ प्रोग्राम? nवीं कैटलन संख्या (nth Catalan Number) के लिए C/C++ प्रोग्राम?

    कैटलन संख्याएं (Catalan numbers) संख्याओं का एक अनुक्रम है। कैटलन संख्याएं प्राकृतिक संख्याओं का एक अनुक्रम बनाती हैं जो विभिन्न गणना समस्याओं में होती हैं, अक्सर पुनरावर्ती रूप से परिभाषित वस्तुओं से जुड़ी होती हैं। Cₙ लंबाई 2n के डाइक शब्दों (Dyck words) की संख्या है। एक डाइक शब्द n Xs और n Ys

  1. C/C++ प्रोग्राम: परवलय का शीर्ष, फोकस और नियता ढूंढना C/C++ प्रोग्राम: परवलय का शीर्ष, फोकस और नियता ढूंढना

    यहां हम देखेंगे कि C या C++ प्रोग्राम का उपयोग करके परवलय का शीर्ष, फोकस और नियता कैसे ढूंढें। इन पैरामीटर्स को प्राप्त करने के लिए हमें परवलय का सामान्य समीकरण चाहिए। सामान्य सूत्र है - y = a*x^2 + b*x + c a, b और c के मान दिए गए हैं। शीर्ष के लिए सूत्र - फोकस के लिए सूत्र - नियता के लिए सूत्र

  1. पायथन प्रोग्राम: ऑड-इवन सॉर्ट / ब्रिक सॉर्ट पायथन प्रोग्राम: ऑड-इवन सॉर्ट / ब्रिक सॉर्ट

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें एक सरणी दी गई है, हमें ब्रिक सॉर्ट का उपयोग करके इसे क्रमबद्ध करना है। यहां हमारे दो चरण हैं: ऑड और इवन चरण। ऑड चरण में, ऑड इंडेक्स वाले तत्वों पर बबल सॉर्ट किया जाता है और इवन चरण में, इवन इंडेक्स वाले तत्वों पर बबल सॉर्ट किय