हमें एक पूर्णांक प्रकार की सरणी दी गई है जिसमें धनात्मक और ऋणात्मक दोनों संख्याएँ हैं, मान लीजिए, किसी भी आकार का arr[]। कार्य एक सरणी को इस तरह से पुनर्व्यवस्थित करना है कि एक सरणी के सभी तत्वों को सी ++ एसटीएल के इनबिल्ट सॉर्ट फ़ंक्शन के साथ-साथ कोडिंग और परिणाम को प्रिंट करने की पुनरावर्ती तकनीक का उपयोग करके क्रमबद्ध किया जाता है।
आइए इसके लिए विभिन्न इनपुट आउटपुट परिदृश्य देखें -
इनपुट - 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 लूप का उपयोग करके पुनर्व्यवस्था क्रिया करने से पहले एक सरणी प्रिंट करें।
-
एक पैरामीटर के रूप में सरणी और आकार को पास करके फ़ंक्शन को पुनर्व्यवस्था (गिरफ्तारी, आकार) पर कॉल करें।
-
समारोह के अंदर पुनर्व्यवस्था (गिरफ्तारी, आकार)
-
एक पूर्णांक प्रकार चर को i से 0 और j को आकार -1 के रूप में घोषित करें।
-
प्रारंभ करें जबकि (सत्य)। थोड़ी देर के अंदर, एक और लूप शुरू करें जबकि arr[i] 0 से कम और i आकार से कम है, फिर i को 1 से बढ़ाएं।
-
प्रारंभ करें जबकि arr[j] 0 से अधिक और j 0 से अधिक है, फिर j को 1 से घटाएं।
-
जाँच करें कि IF i j से कम है, तो अस्थायी को arr[i], arr[i] से arr[j] और arr[j] को temp पर सेट करें।
-
अन्यथा, विराम।
-
-
परिणाम प्रिंट करें।
उदाहरण
#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]); //calling the function to rearrange the array Rearrangement(arr, size); //print the array after rearranging the values 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