हमें एक पूर्णांक प्रकार की सरणी दी गई है जिसमें धनात्मक और ऋणात्मक दोनों संख्याएँ हैं, मान लीजिए, किसी भी आकार का arr[]। कार्य एक सरणी को इस तरह से पुनर्व्यवस्थित करना है कि एक सरणी के सभी तत्वों को सी ++ एसटीएल के इनबिल्ट सॉर्ट फ़ंक्शन के साथ-साथ कोडिंग और परिणाम को प्रिंट करने की पुनरावर्ती तकनीक का उपयोग करके क्रमबद्ध किया जाता है।
आइए इसके लिए विभिन्न इनपुट आउटपुट परिदृश्य देखें -
इनपुट - int arr[] ={4, 2, -1, -1, 6, -3, 0}
आउटपुट - इनबिल्ट सॉर्ट फ़ंक्शन का उपयोग करके सकारात्मक और नकारात्मक संख्याओं की पुनर्व्यवस्था है:-3 -1 -1 0 2 4 6.
स्पष्टीकरण - हमें आकार 7 का एक पूर्णांक सरणी दिया गया है जिसमें सकारात्मक और नकारात्मक दोनों तत्व हैं। अब, हम सरणी को इस तरह से पुनर्व्यवस्थित करेंगे कि एक सरणी के सभी तत्वों को क्रमबद्ध किया जाता है यानी सभी नकारात्मक तत्व सभी सकारात्मक तत्वों से पहले दिखाई देते हैं और अंतिम परिणाम -3 -1 -1 0 2 4 6 होगा।
इनपुट - int arr[] ={-9, -10, 2, 3, 10, 5, 8, 4}
आउटपुट - इनबिल्ट सॉर्ट फ़ंक्शन का उपयोग करके सकारात्मक और नकारात्मक संख्याओं की पुनर्व्यवस्था है:-10 -9 2 3 4 5 8 10.
स्पष्टीकरण - हमें आकार 8 का एक पूर्णांक सरणी दिया जाता है जिसमें सकारात्मक और नकारात्मक दोनों तत्व होते हैं। अब, हम सरणी को इस तरह से पुनर्व्यवस्थित करेंगे कि एक सरणी के सभी तत्वों को क्रमबद्ध किया जाता है यानी सभी नकारात्मक तत्व सभी सकारात्मक तत्वों से पहले दिखाई देते हैं और अंतिम परिणाम -10 -9 2 3 4 5 8 10 होगा। पी>
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
सॉर्ट का उपयोग करना ()
-
पूर्णांक प्रकार के तत्वों की एक सरणी इनपुट करें और एक सरणी के आकार की गणना करें।
-
फ़ंक्शन को डेटा पास करें पुनर्व्यवस्था(int arr[], int size)
-
फ़ंक्शन के अंदर, पुनर्व्यवस्था (int arr[], int size)
-
फ़ंक्शन के पैरामीटर के रूप में सरणी के आकार और सरणी को पास करके सी ++ एसटीएल के सॉर्ट फ़ंक्शन को कॉल करें और यह सॉर्ट किए गए सरणी को वापस कर देगा।
-
-
परिणाम प्रिंट करें।
पुनरावृत्ति का उपयोग करना
-
पूर्णांक प्रकार के तत्वों की एक सरणी इनपुट करें और एक सरणी के आकार की गणना करें।
-
एक अस्थायी चर घोषित करें, मान लें, अस्थायी।
-
एक सरणी के आकार से कम के लिए i से i तक के लिए लूप प्रारंभ करें। लूप के अंदर, जांचें कि क्या arr[i] 0 से कम है, फिर टेम्परेचर को 1 से बढ़ाएं।
-
फ़ंक्शन के पैरामीटर के रूप में सरणी, 0, और आकार -1 पास करके पुनर्व्यवस्था (गिरफ्तारी, 0, (आकार -1)) को कॉल करें।
-
फ़ंक्शन में सरणी, अस्थायी और आकार -1 पास करके रोटेट फ़ंक्शन को कॉल करें।
-
समारोह के अंदर पुनर्व्यवस्था (int arr[], int first, int last)
-
जांचें कि IF पहले बराबर है फिर वापस आएं।
-
फ़ंक्शन के लिए एक पुनरावर्ती कॉल करें पुनर्व्यवस्था () और पास सरणी, पहले + 1 और अंतिम तत्व एक पैरामीटर के रूप में।
-
IF arr[first] 0 से अधिक की जाँच करें, फिर फ़ंक्शन को Rotate(arr, (first + 1), last) और Rotate(arr, first, last)
के रूप में कॉल करें।
-
-
फंक्शन के अंदर रोटेट करें (इंट एआर [], इंट फर्स्ट, इंट लास्ट)
-
प्रारंभ करें जबकि पहले अंतिम से कम। थोड़ी देर के अंदर, पूर्णांक चर को अस्थायी घोषित करें और इसे एआर [पहले] के साथ सेट करें, फिर एआर [पहले] को एआर [आखिरी] और एआर [आखिरी] को अस्थायी पर सेट करें। पहले को 1 से बढ़ाएं और आखिरी को 1 से घटाएं। /पी>
-
-
परिणाम प्रिंट करें।
उदाहरण
#include <bits/stdc++.h> using namespace std; //using the sort() function void Rearrangement(int arr[], int size){ sort(arr, arr + size); } 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 using inbuilt sort function is: "; for(int i = 0; i < size; i++){ cout<< arr[i] << " "; } return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा
Rearrangement of positive and negative numbers using inbuilt sort function is: -3 -1 -1 0 2 4 6
2. किसी फ़ंक्शन के लिए पुनरावर्ती कॉल
उदाहरण
#include <bits/stdc++.h> using namespace std; void Rotate(int arr[], int first, int last){ while(first < last){ int temp = arr[first]; arr[first] = arr[last]; arr[last] = temp; first++; last--; } } void Rearrangement(int arr[], int first, int last){ if(first == last){ return; } Rearrangement(arr, (first + 1), last); if(arr[first] >= 0){ Rotate(arr, (first + 1), last); Rotate(arr, first, last); } } int main(){ int arr[] = {4, 2, -1, -1, 6, -3, 0}; int size = sizeof(arr)/sizeof(arr[0]); int temp = 0; for(int i = 0; i < size; i++){ if(arr[i] < 0){ temp++; } } //calling the function to rearrange the array Rearrangement(arr, 0, (size - 1)); Rotate(arr, temp, (size - 1)); //print the array after rearranging the values cout<<"Rearrangement of positive and negative numbers using Recursion is: "; for(int i = 0; i < size; i++){ cout<< arr[i] << " "; } return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा
Rearrangement of positive and negative numbers using Recursion is: -1 -1 -3 4 2 6 0