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

C++ में सरणी को पुनर्व्यवस्थित करें ताकि सम स्थिति वाले तत्व विषम स्थिति वालों से बड़े हों


हमें एक पूर्णांक प्रकार की सरणी दी गई है जिसमें धनात्मक और ऋणात्मक दोनों संख्याएँ हैं, मान लीजिए, arr[] किसी भी दिए गए आकार की। कार्य है सरणी को इस तरह पुनर्व्यवस्थित करना कि सम स्थिति या इंडेक्स पर मौजूद सभी तत्व विषम स्थिति या इंडेक्स पर मौजूद तत्वों से बड़े हों और परिणाम प्रिंट करें।

विभिन्न इनपुट-आउटपुट परिदृश्य

इनपुट - int arr[] = {2, 1, 4, 3, 6, 5, 8, 7}

आउटपुट - पुनर्व्यवस्थापन से पहले सरणी: 2 1 4 3 6 5 8 7 सम स्थिति वाले तत्व विषम से बड़े हों ऐसा पुनर्व्यवस्थापन: 1 2 3 4 5 6 7 8

व्याख्या - हमें आकार 8 की एक पूर्णांक सरणी दी गई है जिसमें धनात्मक और ऋणात्मक दोनों तत्व हैं। अब, हम सरणी को इस तरह पुनर्व्यवस्थित करेंगे कि सम स्थिति पर मौजूद सभी तत्व विषम स्थिति पर मौजूद तत्वों से बड़े हों और यह संक्रिया करने के बाद बनी सरणी 1 2 3 4 5 6 7 8 है।

इनपुट - int arr[] = {-3, 2, -4, -1}

आउटपुट - पुनर्व्यवस्थापन से पहले सरणी: -3 2 -4 -1 सम स्थिति वाले तत्व विषम से बड़े हों ऐसा पुनर्व्यवस्थापन: -4 -3 -1 2

व्याख्या - हमें आकार 8 की एक पूर्णांक सरणी दी गई है जिसमें धनात्मक और ऋणात्मक दोनों तत्व हैं। अब, हम सरणी को इस तरह पुनर्व्यवस्थित करेंगे कि सम स्थिति पर मौजूद सभी तत्व विषम स्थिति पर मौजूद तत्वों से बड़े हों और यह संक्रिया करने के बाद बनी सरणी -4 -3 -1 2 है।

उपयोग किया गया दृष्टिकोण

  • पूर्णांक प्रकार के तत्वों की एक सरणी इनपुट करें और सरणी का आकार गणना करें।

  • C++ STL की सॉर्ट विधि का उपयोग करके सरणी को क्रमबद्ध करें सरणी और सरणी के आकार को सॉर्ट फ़ंक्शन में पास करके।

  • एक पूर्णांक चर घोषित करें और इसे फ़ंक्शन Rearrangement(arr, size) के कॉल से सेट करें

  • फ़ंक्शन Rearrangement(arr, size) के अंदर

    • ptr[size] नामक एक पूर्णांक प्रकार की सरणी घोषित करें जो सरणी arr[size] के समान आकार की है

    • first को 0 और last को size -1 के रूप में अस्थायी पूर्णांक प्रकार के चर घोषित करें।

    • i को 0 से सरणी के आकार से कम होने तक FOR लूप शुरू करें। लूप के अंदर, जांचें यदि (i + 1) % 2 0 के बराबर है तो ptr[i] को arr[last--] सेट करें।

    • अन्यथा, ptr[i] को arr[first++] सेट करें।

  • परिणाम प्रिंट करें।

उदाहरण

#include <bits/stdc++.h> using namespace std; void Rearrangement(int* arr, int size){    int ptr[size];    int first = 0;    int last = size - 1;    for (int i = 0; i < size; i++){       if((i + 1) % 2 == 0){          ptr[i] = arr[last--];       }       else{          ptr[i] = arr[first++];       }    } } int main(){    //सरणी इनपुट करें    int arr[] = {2, 1, 4, 3, 6, 5, 8, 7};    int size = sizeof(arr) / sizeof(arr[0]);    //मूल सरणी प्रिंट करें    cout<<"Array before Arrangement: ";    for (int i = 0; i < size; i++){       cout << arr[i] << " ";    }    //सरणी क्रमबद्ध करें    sort(arr, arr + size);    //सरणी को पुनर्व्यवस्थित करने के लिए फ़ंक्शन कॉल करें    Rearrangement(arr, size);    //मानों को पुनर्व्यवस्थित करने के बाद सरणी प्रिंट करें    cout<<"\nRearrangement of an array such that even positioned are greater than odd is: ";    for(int i = 0; i < size; i++){       cout<< arr[i] << " ";    }    return 0; }

आउटपुट

उपरोक्त कोड चलाने पर निम्नलिखित आउटपुट उत्पन्न होगा:

Array before Arrangement: 2 1 4 3 6 5 8 7 Rearrangement of an array such that even positioned are greater than odd is: 1 2 3 4 5 6 7 8

  1. सर्कुलर ऐरे में अधिकतम योग जहाँ कोई दो आसन्न तत्व न हों - C++ सर्कुलर ऐरे में अधिकतम योग जहाँ कोई दो आसन्न तत्व न हों - C++

    इस समस्या में, हमें एक सर्कुलर ऐरे cirArr[] दिया गया है। हमारा कार्य एक प्रोग्राम बनाना है जो C++ में सर्कुलर ऐरे में अधिकतम योग ढूंढे जहाँ कोई दो आसन्न तत्व न हों।समस्या विवरणसर्कुलर ऐरे के लिए, हमें ऐरे के तत्वों का अधिकतम योग ढूंढना है जहाँ आसन्न तत्वों को नहीं लिया जा सकता, यानी हमें वैकल्पिक तत

  1. - C++ में ऐरे में सबसे बड़ा d ढूंढें जैसे कि a + b + c = d

    मान लीजिए हमारे पास पूर्णांकों का एक सेट है। हमें एक संख्या d ढूंढनी है, जहां d = a + b + c, और हमें (a + b + c) को अधिकतम करना है, सभी a, b, c, और d सेट में मौजूद हैं। सेट में कम से कम एक एलिमेंट होगा, और अधिकतम 1000 एलिमेंट्स। प्रत्येक एलिमेंट एक परिमित संख्या होगी। यदि सेट {2, 3, 5, 7, 12} है, त

  1. - C++ में सरणी में उन सभी जोड़े (a, b) को खोजें जैसे कि a % b = k

    मान लीजिए हमारे पास एक सरणी A है, उस सरणी से हमें सभी जोड़े (a, b) प्राप्त करने हैं जैसे कि a%b = k। मान लीजिए सरणी A = [2, 3, 4, 5, 7], और k = 3, तो जोड़े हैं (7, 4), (3, 4), (3, 5), (3, 7)। इसे हल करने के लिए, हम सूची को पार करेंगे और जांचेंगे कि दी गई शर्त पूरी हो रही है या नहीं। उदाहरण #include