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

C++ में स्थिर अतिरिक्त स्थान के साथ धनात्मक और ऋणात्मक संख्याओं को पुनर्व्यवस्थित करें


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

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

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

आउटपुट - स्थिर अतिरिक्त स्थान के साथ धनात्मक और ऋणात्मक संख्याओं का पुनर्व्यवस्थापन है: -3 -1 -1 0 6 2 4.

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

इनपुट - int arr[] = {-9, -10, 2, 3, 10, 5, 8, 4}

आउटपुट - स्थिर अतिरिक्त स्थान के साथ धनात्मक और ऋणात्मक संख्याओं का पुनर्व्यवस्थापन है: -9 -10 2 3 10 5 8 4

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

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

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

  • FOR लूप का उपयोग करके पुनर्व्यवस्थापन क्रिया करने से पहले सरणी प्रिंट करें।

  • सरणी और सरणी के आकार को पैरामीटर के रूप में पास करके फ़ंक्शन Rearrangement(arr, size) को कॉल करें।

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

    • i को 0 और j को size -1 के रूप में पूर्णांक प्रकार का चर घोषित करें।

    • while(true) शुरू करें। while के अंदर, एक और लूप शुरू करें while arr[i] 0 से कम है AND i size से कम है तो i को 1 से बढ़ाएं।

    • WHILE arr[j] 0 से बड़ा है AND j 0 से बड़ा या बराबर है तो j को 1 से घटाएं।

    • जांचें यदि i j से कम है तो temp को arr[i], arr[i] को arr[j] और arr[j] को temp सेट करें।

    • अन्यथा, break करें।

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

उदाहरण

#include<iostream> using namespace std; void Rearrangement(int arr[], int size){    int i = 0;    int j = size - 1;    while(true){       while(arr[i] < 0 && i < size){          i++;       }       while(arr[j] > 0 && j >= 0){          j--;       }       if (i < j){          int temp = arr[i];          arr[i] = arr[j];          arr[j] = temp;       }       else{          break;       }    } } int main(){    int arr[] = {4, 2, -1, -1, 6, -3, 0};    int size = sizeof(arr)/sizeof(arr[0]);    //सरणी को पुनर्व्यवस्थित करने के लिए फ़ंक्शन कॉल करें    Rearrangement(arr, size);    //मानों को पुनर्व्यवस्थित करने के बाद सरणी प्रिंट करें    cout<<"Rearrangement of positive and negative numbers with constant extra space is: ";    for(int i = 0; i < size; i++){       cout<< arr[i] << " ";    }    return 0; }

आउटपुट

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

Rearrangement of positive and negative numbers with constant extra space is: -3 -1 -1 0 6 2 4

  1. - पायथन में O(n) समय और O(1) स्थान में जांचें कि सरणी के तत्व क्रमागत हैं (ऋणात्मक संख्याओं को भी संभालता है)

    मान लीजिए हमारे पास nums नामक असॉर्टेड संख्याओं की एक सरणी है। हमें जांचना है कि क्या इसमें सन्निकट मान हैं या नहीं, यह ऋणात्मक संख्याओं को भी सपोर्ट करना चाहिए। उदाहरण के लिए, यदि nums = [-3, 5, 1, -2, -1, 0, 2, 4, 3] है, तो आउटपुट True होगा क्योंकि तत्व -3, -2, -1, 0, 1, 2, 3, 4, 5 हैं। हल करने क

  1. - पायथन प्रोग्राम में लैम्ब्डा एक्सप्रेशन से धनात्मक और ऋणात्मक संख्याओं को पुनर्व्यवस्थित करें

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

  1. - पायथन में लैम्ब्डा एक्सप्रेशन से धनात्मक और ऋणात्मक संख्याओं को पुनर्व्यवस्थित करना

    इस लेख में, हम लैम्ब्डा एक्सप्रेशन के बारे में सीखेंगे जो धनात्मक और ऋणात्मक पूर्णांकों के इनपुट सरणी को लेगा। हम दो अलग-अलग सरणियाँ गणना करेंगे, एक में ऋणात्मक संख्याएँ और दूसरी में धनात्मक संख्याएँ। यहाँ हम एक Rearrange() फ़ंक्शन परिभाषित करते हैं जो केवल एक तर्क स्वीकार करता है यानी पूर्णांकों