हमें एक पूर्णांक प्रकार की सरणी दी गई है जिसमें धनात्मक और ऋणात्मक दोनों संख्याएँ हैं, मान लें, किसी भी आकार का arr[]। कार्य एक सरणी को इस तरह से पुनर्व्यवस्थित करना है कि सम स्थिति या अनुक्रमणिका के सभी तत्व विषम स्थिति या अनुक्रमणिका के तत्वों से अधिक हों और परिणाम को प्रिंट करें।
आइए इसके लिए विभिन्न इनपुट आउटपुट परिदृश्य देखें -
इनपुट - int arr[] ={2, 1, 4, 3, 6, 5, 8, 7}
आउटपुट - व्यवस्था से पहले सरणी:2 1 4 3 6 5 8 7 एक सरणी का पुनर्व्यवस्थापन जैसे कि सम स्थिति विषम से अधिक हो:1 2 3 4 5 6 7 8
स्पष्टीकरण - हमें आकार 8 का एक पूर्णांक सरणी दिया जाता है जिसमें सकारात्मक और नकारात्मक दोनों तत्व होते हैं। अब, हम सरणी को इस तरह से पुनर्व्यवस्थित करेंगे कि सम स्थिति वाले सभी तत्व विषम स्थिति वाले तत्वों से बड़े हों और इस ऑपरेशन को करने के बाद बनने वाला सरणी 1 2 3 4 5 6 7 8 हो।
इनपुट - int arr[] ={-3, 2, -4, -1}
आउटपुट - व्यवस्था से पहले सरणी:-3 2 -4 -1 एक सरणी की पुनर्व्यवस्था जैसे कि सम स्थिति विषम से अधिक हो:-4 -3 -1 2
स्पष्टीकरण -हमें आकार 8 का एक पूर्णांक सरणी दिया जाता है जिसमें सकारात्मक और नकारात्मक दोनों तत्व होते हैं। अब, हम सरणी को इस तरह से पुनर्व्यवस्थित करेंगे कि सम स्थिति में सभी तत्व विषम स्थिति वाले तत्वों से बड़े हों और इस ऑपरेशन को करने के बाद बनने वाला सरणी -4 -3 -1 2 है।
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
-
पूर्णांक प्रकार के तत्वों की एक सरणी इनपुट करें और एक सरणी के आकार की गणना करें।
-
सॉर्ट फ़ंक्शन के लिए सरणी और सरणी के आकार को पास करके C++ STL की सॉर्ट विधि का उपयोग करके एक सरणी को सॉर्ट करें।
-
एक पूर्णांक चर घोषित करें और इसे कॉल के साथ फ़ंक्शन पर सेट करें पुनर्व्यवस्था (गिरफ्तारी, आकार)
-
समारोह के अंदर पुनर्व्यवस्था (गिरफ्तारी, आकार)
-
एक पूर्णांक प्रकार की सरणी घोषित करें मान लें, ptr [आकार] सरणी के समान आकार का arr [आकार]
-
अस्थायी पूर्णांक प्रकार चर घोषित करें यानी पहले से 0 और अंतिम से आकार -1 तक।
-
I से 0 तक के लिए लूप प्रारंभ करें जब तक कि i किसी सरणी के आकार से कम न हो। लूप के अंदर, IF (i + 1)% 2 बराबर 0 की जाँच करें और फिर ptr[i] को arr[last--] पर सेट करें।
-
ELSE, ptr[i] को arr[first++] पर सेट करें।
-
-
परिणाम प्रिंट करें।
उदाहरण
#include <bits/stdc++.h>
using namespace std;
void Rearrangement(int* arr, int size){
int ptr[size];
int first = 0;
int last = size - 1;
for (int i = 0; i < size; i++){
if((i + 1) % 2 == 0){
ptr[i] = arr[last--];
}
else{
ptr[i] = arr[first++];
}
}
}
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] << " ";
}
//sort an Array
sort(arr, arr + size);
//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 positioned are greater than odd 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 positioned are greater than odd is: 1 2 3 4 5 6 7 8