हमें एक पूर्णांक प्रकार की सरणी दी गई है जिसमें धनात्मक और ऋणात्मक दोनों संख्याएँ हैं, मान लें, किसी भी आकार का arr[]। कार्य एक सरणी को इस तरह से पुनर्व्यवस्थित करना है कि सम स्थिति या अनुक्रमणिका के सभी तत्व विषम स्थिति या अनुक्रमणिका वाले तत्वों से कम हों और परिणाम को प्रिंट करें।
आइए इसके लिए विभिन्न इनपुट आउटपुट परिदृश्य देखें -
इनपुट - int arr[] ={2, 1, 4, 3, 6, 5, 8, 7}
आउटपुट - व्यवस्था से पहले सरणी:2 1 4 3 6 5 8 7 एक सरणी की पुनर्व्यवस्था जैसे कि सूचकांक तत्व भी छोटे होते हैं और विषम सूचकांक तत्व अधिक होते हैं:1 4 2 6 3 8 5 7
स्पष्टीकरण - हमें आकार 8 का एक पूर्णांक सरणी दिया जाता है जिसमें सकारात्मक और नकारात्मक दोनों तत्व होते हैं। अब, हम सरणी को इस तरह से पुनर्व्यवस्थित करेंगे कि सम स्थिति वाले सभी तत्व विषम स्थिति वाले तत्वों से कम हों और इस ऑपरेशन को करने के बाद बनने वाला सरणी 1 4 2 6 3 8 5 7 हो।
इनपुट - int arr[] ={10, -1, 7, -5, 6, -9}
आउटपुट - व्यवस्था से पहले सरणी:10 -1 7 -5 6 -9 एक सरणी की पुनर्व्यवस्था जैसे कि सूचकांक तत्व भी छोटे होते हैं और विषम सूचकांक तत्व अधिक होते हैं:-1 10 -5 7 -9 6
स्पष्टीकरण - हमें आकार 6 का एक पूर्णांक सरणी दिया जाता है जिसमें सकारात्मक और नकारात्मक दोनों तत्व होते हैं। अब, हम सरणी को इस तरह से पुनर्व्यवस्थित करेंगे कि सम स्थिति वाले सभी तत्व विषम स्थिति वाले तत्वों से कम हों और इस ऑपरेशन को करने के बाद बनने वाला सरणी -1 10 -5 7 -9 6 हो।
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
-
पूर्णांक प्रकार के तत्वों की एक सरणी इनपुट करें और एक सरणी के आकार की गणना करें।
-
FOR लूप का उपयोग करके पुनर्व्यवस्था क्रिया करने से पहले एक सरणी प्रिंट करें।
-
एक पैरामीटर के रूप में सरणी और आकार को पास करके फ़ंक्शन को पुनर्व्यवस्था (गिरफ्तारी, आकार) पर कॉल करें।
-
समारोह के अंदर पुनर्व्यवस्था (गिरफ्तारी, आकार)
-
I से 0 तक के लिए लूप प्रारंभ करें जब तक कि i आकार -1 से कम न हो। लूप के अंदर, IF i% 2 से 0 की जाँच करें, फिर IF arr [i] arr [i + 1] से अधिक की जाँच करें, फिर arr [i] और arr [i + 1] को सॉर्ट करने के लिए C++ STL की स्वैप विधि को कॉल करें। विधि।
-
अब, जांचें कि IF i% 2 0 के बराबर नहीं है, फिर IF arr[i] arr से कम [i + 1] की जांच करें, फिर arr[i] और arr[i + 1] को विधि में पास करके STL की स्वैप विधि को कॉल करें।
-
-
परिणाम प्रिंट करें।
उदाहरण
#include <iostream> using namespace std; void Rearrangement(int* arr, int size){ for(int i = 0; i < size - 1; i++){ if(i % 2 == 0 ){ if(arr[i] > arr[i + 1]){ swap(arr[i], arr[i + 1]); } } if(i % 2 != 0){ if(arr[i] < arr[i + 1]){ swap(arr[i], arr[i + 1]); } } } } int main(){ //input an array int arr[] = {2, 1, 4, 3, 6, 5, 8, 7}; int size = sizeof(arr) / sizeof(arr[0]); //print the original Array cout<<"Array before Arrangement: "; for (int i = 0; i < size; i++){ cout << arr[i] << " "; } //calling the function to rearrange the array Rearrangement(arr, size); //print the array after rearranging the values cout<<"\nRearrangement of an array such that even index elements are smaller and odd index elements are greater is: "; for(int i = 0; i < size; i++){ cout<< arr[i] << " "; } return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा
Array before Arrangement: 2 1 4 3 6 5 8 7 Rearrangement of an array such that even index elements are smaller and odd index elements are greater is: 1 4 2 6 3 8 5 7