Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C++ का उपयोग करके किसी सरणी को अधिकतम न्यूनतम रूप में पुनर्व्यवस्थित करें

हमें एक क्रमबद्ध सरणी दी गई है। हमें इस सरणी को अधिकतम, न्यूनतम रूप में व्यवस्थित करने की आवश्यकता है, यानी पहला तत्व अधिकतम तत्व है, दूसरा तत्व न्यूनतम तत्व है, तीसरा तत्व दूसरा अधिकतम तत्व है, चौथा तत्व दूसरा न्यूनतम तत्व है, और इसी तरह, उदाहरण के लिए -

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, आदि में भी लिख सकते हैं। हमें उम्मीद है कि आपको यह लेख मददगार लगा होगा।


  1. C++ प्रोग्राम बाइनरी सर्च दृष्टिकोण का उपयोग करके किसी सरणी के न्यूनतम तत्व को खोजने के लिए

    रैखिक खोज दृष्टिकोण का उपयोग करके सरणी के न्यूनतम तत्व को खोजने के लिए यह एक सी ++ प्रोग्राम है। इस कार्यक्रम की समय जटिलता O(log(n)) है। एल्गोरिदम Begin Construct binary search tree for the given unsorted data array. To find out the minimum element move the pointer to the leftmost child node.

  1. सी ++ प्रोग्राम बाइनरी सर्च का उपयोग करके एक ऐरे में अधिकतम तत्व खोजने के लिए

    बाइनरी सर्च ट्री का उपयोग करके किसी सरणी के अधिकतम तत्व को खोजने के लिए यह एक सी ++ प्रोग्राम है। इस कार्यक्रम की समय जटिलता O(log(n)) है। एल्गोरिदम Begin Construct the Binary Search Tree using the given data elements. Next traverse the root pointer to the rightmost child node available. Pr

  1. C++ प्रोग्राम लीनियर सर्च का उपयोग करके किसी ऐरे में न्यूनतम तत्व ढूँढ़ने के लिए

    रैखिक खोज दृष्टिकोण का उपयोग करके सरणी के न्यूनतम तत्व को खोजने के लिए यह एक सी ++ प्रोग्राम है। इस कार्यक्रम की समय जटिलता O(n) है। एल्गोरिदम Begin Assign the data element to an array. Assign the value at ‘0’ index to minimum variable. Compare minimum with other data element se