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

C++ में कॉकटेल सॉर्ट प्रोग्राम


कॉकटेल सॉर्ट क्या है?

कॉकटेल सॉर्ट, बबल सॉर्ट का एक प्रकार है जो एक स्थिर सॉर्टिंग एल्गोरिदम और तुलनात्मक सॉर्ट दोनों है। इसे द्विदिशात्मक बबल सॉर्ट, कॉकटेल शेकर सॉर्ट, शेकर सॉर्ट, रिपल सॉर्ट, शफल सॉर्ट, या शटल सॉर्ट के नाम से भी जाना जाता है। यह एल्गोरिदम बबल सॉर्ट से इस मायने में भिन्न है कि यह सूची में प्रत्येक पास के दौरान दोनों दिशाओं में सॉर्ट करता है।

Input: 5 3 4 2 1 Output: 1 2 3 4 5

व्याख्या

कॉकटेल सॉर्ट में, सरणी में असॉर्टेड तत्व होते हैं। कॉकटेल सॉर्ट सूची में प्रत्येक पास के दौरान दोनों दिशाओं में काम करता है। यह सरणी को एक बार आगे और एक बार पीछे की दिशा में बबल सॉर्ट का उपयोग करके सॉर्ट करता है।

उदाहरण

#include <iostream>
using namespace std;

int main() {
    int arr[] = {5, 3, 4, 2, 1};
    int m = 5;
    int n = m;
    int c = 0;

    do {
        // आगे की दिशा में पास
        for (int i = 0; i < n - 1; i++) {
            if (arr[i] > arr[i + 1]) {
                // बिना टेम्पररी वेरिएबल के स्वैप
                arr[i] = arr[i] + arr[i + 1];
                arr[i + 1] = arr[i] - arr[i + 1];
                arr[i] = arr[i] - arr[i + 1];
            }
        }
        n = n - 1;

        // पीछे की दिशा में पास
        for (int i = m - 1; i >= c; i--) {
            if (arr[i] < arr[i - 1]) {
                arr[i] = arr[i] + arr[i - 1];
                arr[i - 1] = arr[i] - arr[i - 1];
                arr[i] = arr[i] - arr[i - 1];
            }
        }
        c = c + 1;
    } while (n != 0 && c != 0);

    for (int i = 0; i < m; i++) {
        cout << arr[i] << "\t";
    }
    return 0;
}

आउटपुट

1 2 3 4 5

समय जटिलता

  • सर्वश्रेष्ठ स्थिति: O(n) - जब सरणी पहले से सॉर्टेड हो
  • औसत स्थिति: O(n²)
  • सबसे खराब स्थिति: O(n²)

स्थान जटिलता

O(1) - केवल स्थिर अतिरिक्त स्थान की आवश्यकता होती है।

  1. C प्रोग्राम फॉर रेडिक्स सॉर्ट (Radix Sort) C प्रोग्राम फॉर रेडिक्स सॉर्ट (Radix Sort)

    एक सॉर्टिंग एल्गोरिदम एक ऐसा एल्गोरिदम है जो एक सूची के घटकों को एक निश्चित क्रम में रखता है। सबसे अधिक उपयोग किए जाने वाले क्रम संख्यात्मक क्रम और लेक्सिकोग्राफिक क्रम हैं। रेडिक्स सॉर्ट एक गैर-तुलनात्मक सॉर्टिंग एल्गोरिदम है। रेडिक्स सॉर्ट एल्गोरिदम अनसॉर्टेड सूची के लिए सबसे पसंदीदा एल्गोरिदम ह

  1. C++ प्रोग्राम बाईसेक्शन मेथड के लिए C++ प्रोग्राम बाईसेक्शन मेथड के लिए

    फंक्शन f(x) दिया गया है जिसमें संख्या a और b हैं जहां, f(a) * f(b) > 0 और फंक्शन f(x) a और b के बीच होना चाहिए यानी f(x) = [a, b]। कार्य बाईसेक्शन मेथड का उपयोग करके फंक्शन f(x) में अंतराल a और b के बीच स्थित रूट का मान खोजना है।बाईसेक्शन मेथड क्या है?बाईसेक्शन मेथड का उपयोग फंक्शन f(x) में दिए ग

  1. पायथन प्रोग्राम: कॉकटेल सॉर्ट पायथन प्रोग्राम: कॉकटेल सॉर्ट

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