हमें एक पूर्णांक प्रकार की सरणी दी गई है जिसमें धनात्मक और ऋणात्मक दोनों संख्याएँ हैं, मान लीजिए, arr[] किसी भी दिए गए आकार की। कार्य है सरणी को इस तरह पुनर्व्यवस्थित करना कि सरणी के सभी तत्व C++ STL के इनबिल्ट सॉर्ट फ़ंक्शन के साथ-साथ कोडिंग की पुनरावर्ती तकनीक का उपयोग करके क्रमबद्ध हों और परिणाम प्रिंट करें।
विभिन्न इनपुट-आउटपुट परिदृश्य
इनपुट - 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 होगा।
उपयोग किया गया दृष्टिकोण
sort() का उपयोग
पूर्णांक प्रकार के तत्वों की एक सरणी इनपुट करें और सरणी का आकार गणना करें।
डेटा को फ़ंक्शन Rearrangement(int arr[], int size) में पास करें
फ़ंक्शन, Rearrangement(int arr[], int size) के अंदर
C++ STL के सॉर्ट फ़ंक्शन को सरणी और सरणी के आकार को पैरामीटर के रूप में पास करके कॉल करें और यह क्रमबद्ध सरणी लौटाएगा।
परिणाम प्रिंट करें।
पुनरावर्तन का उपयोग
पूर्णांक प्रकार के तत्वों की एक सरणी इनपुट करें और सरणी का आकार गणना करें।
एक अस्थायी चर घोषित करें, मान लीजिए, temp।
i को सरणी के आकार से कम होने तक FOR लूप शुरू करें। लूप के अंदर, जांचें यदि arr[i] 0 से कम है तो temp को 1 से बढ़ाएं।
सरणी, 0, और size -1 को पैरामीटर के रूप में पास करके Rearrangement(arr, 0, (size - 1)) को कॉल करें।
सरणी, temp और size - 1 को फ़ंक्शन में पास करके rotate फ़ंक्शन को कॉल करें।
फ़ंक्शन Rearrangement(int arr[], int first, int last) के अंदर
जांचें यदि first last के बराबर है तो वापस लौटें।
सरणी, first + 1 और अंतिम तत्व को पैरामीटर के रूप में पास करके फ़ंक्शन Rearrangement() को पुनरावर्ती कॉल करें।
जांचें यदि arr[first] 0 से बड़ा है तो Rotate(arr, (first + 1), last) और Rotate(arr, first, last) को फ़ंक्शन के रूप में कॉल करें
फ़ंक्शन Rotate(int arr[], int first, int last) के अंदर
while first last से कम हो शुरू करें। while के अंदर, temp नामक पूर्णांक चर घोषित करें और इसे arr[first] से सेट करें फिर arr[first] को arr[last] और arr[last] को temp सेट करें। first को 1 से बढ़ाएं और last को 1 से घटाएं।
परिणाम प्रिंट करें।
1. sort() फ़ंक्शन का उपयोग
उदाहरण
#include <bits/stdc++.h> using namespace std; //sort() फ़ंक्शन का उपयोग 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]); //सरणी को पुनर्व्यवस्थित करने के लिए फ़ंक्शन कॉल करें Rearrangement(arr, size); //मानों को पुनर्व्यवस्थित करने के बाद सरणी प्रिंट करें 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++; } } //सरणी को पुनर्व्यवस्थित करने के लिए फ़ंक्शन कॉल करें Rearrangement(arr, 0, (size - 1)); Rotate(arr, temp, (size - 1)); //मानों को पुनर्व्यवस्थित करने के बाद सरणी प्रिंट करें 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