हमें एक पूर्णांक प्रकार की सरणी दी गई है जिसमें धनात्मक और ऋणात्मक दोनों संख्याएँ हैं, मान लें, किसी भी आकार का arr[]। कार्य एक सरणी को इस तरह से पुनर्व्यवस्थित करना है कि जब किसी सरणी में सबसे कम तत्व विषम हो तो सरणी के तत्वों को विषम पहले और सम-सेकेंड तरीके से पुनर्व्यवस्थित किया जाएगा। जब किसी सरणी में सबसे कम तत्व सम होता है तो किसी सरणी के तत्वों को भी पहले और विषम दूसरे तरीके से पुनर्व्यवस्थित किया जाएगा और यदि सम/विषम तत्वों की संख्या विषम/सम तत्वों की संख्या से अधिक है तो यह 0 और परिणाम प्रिंट करें।
आइए इसके लिए विभिन्न इनपुट आउटपुट परिदृश्य देखें -
इनपुट - int arr[] ={ 1, 1, 2, 2, 5, 4 }
आउटपुट - आरोही क्रम में वैकल्पिक फैशन में विषम और सम मानों की पुनर्व्यवस्था है:1 2 1 2 5 4.
स्पष्टीकरण - हमें एक पूर्णांक प्रकार की सरणी दी गई है। अब हम जांच करेंगे कि एक सरणी में सबसे छोटा तत्व कौन सा है यानी 1 जो विषम मान है इसलिए तत्वों को विषम पहले और दूसरे तरीके से व्यवस्थित किया जाएगा यानी 1 2 1 2 5 4 अंतिम आउटपुट है।
इनपुट - int arr[] ={ 6, 3, 2, 8, 10, 4 }
आउटपुट - आरोही क्रम में वैकल्पिक फैशन में विषम और सम मानों की पुनर्व्यवस्था है:2 3 4 0 6 0
स्पष्टीकरण - हमें एक पूर्णांक प्रकार की सरणी दी गई है। अब हम जांच करेंगे कि सरणी में सबसे छोटा तत्व कौन सा है यानी 2 जो सम मान है इसलिए elem
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
-
पूर्णांक प्रकार के तत्वों की एक सरणी इनपुट करें और एक सरणी के आकार की गणना करें।
-
सॉर्ट फ़ंक्शन के लिए सरणी और सरणी के आकार को पास करके C++ STL की सॉर्ट विधि का उपयोग करके एक सरणी को सॉर्ट करें।
-
एक पूर्णांक चर घोषित करें और इसे कॉल के साथ फ़ंक्शन पर सेट करें पुनर्व्यवस्था (गिरफ्तारी, आकार)
-
समारोह के अंदर पुनर्व्यवस्था (गिरफ्तारी, आकार)
-
पूर्णांक प्रकार डेटा संग्रहीत करने वाले वेक्टर के प्रकार के रूप में 'vec_1' और 'vec_2' के रूप में दो चर बनाएं।
-
अस्थायी के रूप में पूर्णांक प्रकार का एक अस्थायी चर बनाएं और इसे 0 के साथ सेट करें।
-
बूल प्रकार के एक अन्य चर को चेक के रूप में घोषित करें और इसे FALSE मान के साथ सेट करें।
-
I से 0 तक के लिए लूप प्रारंभ करें जब तक कि i आकार से कम न हो। लूप के अंदर, IF arr[i]% 2 =0 चेक करें और फिर arr[i] को vec_1 पर पुश करें। ELSE, arr[i] को vec_2 पर पुश करें।
-
पूर्णांक चर को i और j से 0 के रूप में घोषित करें। IF arr [0]% 2 =0 की जाँच करें और फिर जाँच को सही पर सेट करें।
-
प्रारंभ करें जबकि अस्थायी आकार से कम है। लूप के अंदर, IF check =true चेक करें, फिर arr[temp++] को vec_1[i++] पर सेट करें और चेक को !check पर सेट करें। ELSE, [temp++] को vec_2[j++] पर गिरफ्तार करें और चेक को !check पर सेट करें।
-
-
परिणाम प्रिंट करें।
उदाहरण
#include <bits/stdc++.h> using namespace std; void Rearrangement(int arr[], int size){ vector<int> vec_1, vec_2; int temp = 0; bool check = false; for(int i = 0; i < size; i++){ if(arr[i] % 2 == 0){ vec_1.push_back(arr[i]); } else{ vec_2.push_back(arr[i]); } } int i = 0; int j = 0; if(arr[0] % 2 == 0){ check = true; } while(temp < size){ if(check == true){ arr[temp++] = vec_1[i++]; check = !check; } else{ arr[temp++] = vec_2[j++]; check = !check; } } } int main(){ int arr[] = { 1, 1, 2, 2, 5, 4 }; int size = sizeof(arr) / sizeof(int); //sort an array sort(arr, arr + size); cout<<"Rearrangement of Odd and Even values in Alternate Fashion in Ascending Order is: "; Rearrangement(arr, size); for(int i = 0; i < size; i++){ cout << arr[i] << " "; } return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा
Rearrangement of Odd and Even values in Alternate Fashion in Ascending Order is: 1 2 1 2 5 4