हमें एक पूर्णांक सरणी दी गई है जिसे क्रमबद्ध/अक्रमित तरीके से व्यवस्थित किया जा सकता है। कार्य पहले सरणी को क्रमबद्ध करना है यदि मान बिना क्रमबद्ध हैं तो सरणी को इस तरह व्यवस्थित करें कि सरणी का पहला तत्व अधिकतम मान होगा, दूसरा न्यूनतम मान होगा, तीसरा दूसरा सबसे बड़ा मान होगा, चौथा होगा दूसरा न्यूनतम मूल्य वगैरह।
आइए इसके लिए विभिन्न इनपुट आउटपुट परिदृश्य देखें -
इनपुट - int arr[] ={7, 5, 2, 3, 4, 9, 10, 5}
आउटपुट - व्यवस्था से पहले सरणी:2 3 4 5 5 7 9 10 अधिकतम न्यूनतम रूप में एक सरणी का पुनर्व्यवस्था है:10 2 9 3 7 4 5 5
स्पष्टीकरण - हमें एक पूर्णांक प्रकार की सरणी दी जाती है जिसमें {7, 5, 2, 3, 4, 9, 10, 5} के मान होते हैं। सबसे पहले हम एक ऐरे को सॉर्ट करेंगे और यह {2 3 4 5 5 7 9 10} होगा। दूसरे, सबसे बड़े तत्व को एआर [0] यानी 10 पर व्यवस्थित करें, फिर सबसे छोटा तत्व एआर [1] यानी 2 पर दूसरा सबसे बड़ा तत्व एआर [2] यानी 9 और इसी तरह। अंतिम परिणामी सरणी 10 2 9 3 7 4 5 5
. होगीइनपुट - int arr[] ={2, 4, 1, 6, 7}
आउटपुट - व्यवस्था से पहले सरणी:1, 2, 4, 6, 7 अधिकतम न्यूनतम रूप में एक सरणी का पुनर्व्यवस्था है:7, 1, 6, 2, 4
स्पष्टीकरण - हमें एक पूर्णांक प्रकार की सरणी दी जाती है जिसमें {2, 4, 1, 6, 7} के मान होते हैं। सबसे पहले हम एक ऐरे को सॉर्ट करेंगे और यह {1, 2, 4, 6, 7} होगा। दूसरे, सबसे बड़े तत्व को एआर [0] यानी 7 पर व्यवस्थित करें फिर सबसे छोटा तत्व एआर [1] यानी 1 पर दूसरा सबसे बड़ा तत्व एआर [2] यानी 6 और इसी तरह। अंतिम परिणामी सरणी 7, 1, 6, 2, 4 होगी
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
-
पूर्णांक प्रकार के तत्वों की एक सरणी इनपुट करें और एक सरणी के आकार की गणना करें। एक तर्क के रूप में एआर [] और एक सरणी के आकार को पास करके सी ++ एसटीएल की सॉर्ट विधि को कॉल करें।
-
व्यवस्था से पहले सरणी को प्रिंट करें और फ़ंक्शन को कॉल करें Rearr_Max_Min(arr, size)
-
समारोह के अंदर Rearr_Max_Min(arr, size)
-
एक चर को अधिकतम घोषित करें और इसे आकार - 1 के साथ और दूसरे चर को न्यूनतम के रूप में सेट करें और इसे 0 के साथ सेट करें। एक चर को max_val के रूप में घोषित करें और इसे arr [आकार - 1] + 1. के साथ सेट करें।
-
I से 0 तक के लिए लूप प्रारंभ करें जब तक कि i आकार से कम न हो। लूप के अंदर, IF i% 2 =0 जांचें, फिर arr[i] को arr[i] + (arr[max]% max_val) * max_val पर सेट करें और अधिकतम को 1 से घटाएं।
-
अन्यथा, arr[i] को arr[i] + (arr[min]% max_val) * max_val पर सेट करें और न्यूनतम को 1 से बढ़ाएँ।
-
I से 0 तक के लिए लूप प्रारंभ करें जब तक कि i आकार से कम न हो। लूप के अंदर, arr[i] को arr[i] / max_val
. पर सेट करें
-
उदाहरण
#include <bits/stdc++.h>
using namespace std;
void Rearr_Max_Min(int arr[], int size){
int max = size - 1;
int min = 0;
int max_val = arr[size - 1] + 1;
for (int i = 0; i < size; i++){
if (i % 2 == 0){
arr[i] += (arr[max] % max_val) * max_val;
max--;
}
else{
arr[i] += (arr[min] % max_val) * max_val;
min++;
}
}
for(int i = 0; i < size; i++){
arr[i] = arr[i] / max_val;
}
}
int main(){
//input an array
int arr[] = {7, 5, 2, 3, 4, 9, 10, 5 };
int size = sizeof(arr) / sizeof(arr[0]);
//sort an array
sort(arr, arr + size);
//print the original Array after sorting
cout<<"Array before Arrangement: ";
for (int i = 0; i < size; i++){
cout << arr[i] << " ";
}
//calling the function to rearrange the array
Rearr_Max_Min(arr, size);
//print the array after rearranging the values
cout<<"\nRearrangement of an array in maximum minimum form is: ";
for(int i = 0; i < size; i++){
cout<< arr[i] << " ";
}
return 0;
} आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा
Array before Arrangement: 2 3 4 5 5 7 9 10 Rearrangement of an array in maximum minimum form is: 10 2 9 3 7 4 5 5