हमें एक क्रमबद्ध सरणी दी गई है। हमें इस सरणी को अधिकतम, न्यूनतम रूप में व्यवस्थित करने की आवश्यकता है, यानी पहला तत्व अधिकतम तत्व है, दूसरा तत्व न्यूनतम तत्व है, तीसरा तत्व दूसरा अधिकतम तत्व है, चौथा तत्व दूसरा न्यूनतम तत्व है, और इसी तरह, उदाहरण के लिए -
Input : arr[ ] = { 10, 20, 30, 40, 50, 60 } Output : { 60, 10, 50, 20, 40, 30 } Explanation : array is rearranged in the form { 1st max, 1st min, 2nd max, 2nd min, 3rd max, 3rd min } Input : arr [ ] = { 15, 17, 19, 23, 36, 67, 69 } Output : { 69, 15, 67, 17, 36, 19, 23 }
किसी सरणी को अधिकतम और न्यूनतम रूप में पुनर्व्यवस्थित करने के लिए एकल दृष्टिकोण है -
समाधान खोजने के लिए दृष्टिकोण
किसी सरणी को अधिकतम और न्यूनतम रूप में पुनर्व्यवस्थित करने के लिए एकल दृष्टिकोण है -
दो-सूचक दृष्टिकोण
यहां दो चर, न्यूनतम और अधिकतम का उपयोग करें, जो अधिकतम और न्यूनतम तत्व को इंगित करेगा और पुनर्व्यवस्थित सरणी को संग्रहीत करने के लिए समान आकार का एक नया खाली सरणी भी बनाएगा। अब सरणी पर पुनरावृति करें, और यदि पुनरावृत्त तत्व सम सूचकांक पर है, तो arr[max] तत्व को खाली सरणी में जोड़ें और अधिकतम 1 से घटाएं। यदि तत्व एक विषम सूचकांक पर है, तो arr[min] तत्व जोड़ें खाली एरे और इंक्रीमेंट मिनिमम 1
उदाहरण
#include <bits/stdc++.h> using namespace std; int main () { int arr[] = { 1, 2, 3, 4, 5, 6 }; int n = sizeof (arr) / sizeof (arr[0]); // creating a new array to store the rearranged array. int final[n]; // pointing variables to initial and final element index. int min = 0, max = n - 1; int count = 0; // iterating over the array until max is less than or equals to max. for (int i = 0; min <= max; i++) { // if count is even then store max index element if (count % 2 == 0) { final[i] = arr[max]; max--; } // store min index element else { final[i] = arr[min]; min++; } count++; } // printing the final rearranged array. for (int i = 0; i < n; i++) cout << final[ i ] << " "; return 0; }
आउटपुट
6 1 5 2 4 3
उपरोक्त कोड की व्याख्या
- चर को न्यूनतम =0 और अधिकतम =array_length(n) - 1. के रूप में प्रारंभ किया जाता है।
- के लिए (int i =0; min <=max; i++) सरणी पर पुनरावृति करने के लिए जब तक कि अधिकतम मिनट से अधिक न हो जाए।
- यदि गिनती विषम है, तो (अधिकतम)तत्व को अंतिम सरणी में जोड़ा जाता है, और चर अधिकतम को 1 से घटाया जाता है।
- मान लीजिए कि गिनती तब भी (मिनट) है। उस स्थिति में, तत्व को अंतिम सरणी में जोड़ा जाता है, और चर मिनट को 1 से बढ़ा दिया जाता है।
- अंत में, परिणामी सरणी को अंतिम [] सरणी में संग्रहीत किया जाता है।
निष्कर्ष
इस लेख में, हमने दिए गए सरणी को अधिकतम-न्यूनतम रूप में पुनर्व्यवस्थित करने के समाधान पर चर्चा की। हमने समाधान के लिए दृष्टिकोण पर चर्चा की और इसे समय जटिलता ओ (एन) के साथ एक आशावादी समाधान के साथ हल किया। हम उसी के लिए एक C++ प्रोग्राम भी लिखते हैं। इसी तरह, हम इस प्रोग्राम को किसी अन्य भाषा जैसे C, Java, Python, आदि में भी लिख सकते हैं। हमें उम्मीद है कि आपको यह लेख मददगार लगा होगा।