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

क्रम में एक सरणी को पुनर्व्यवस्थित करें - सबसे छोटा, सबसे बड़ा, दूसरा सबसे छोटा, दूसरा सबसे बड़ा,। सी ++ का उपयोग करना

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

Input : arr[ ] = { 13, 34, 30, 56, 78, 3 }
Output : { 3, 78, 13, 56, 34, 30 }
Explanation : array is rearranged in the order { 1st min, 1st max, 2nd min, 2nd max, 3rd min, 3rd max }

Input : arr [ ] = { 2, 4, 6, 8, 11, 13, 15 }
Output : { 2, 15, 4, 13, 6, 11, 8 }

समाधान खोजने के लिए दृष्टिकोण

इस समस्या को दो चरों, 'x . का उपयोग करके हल किया जा सकता है और 'y ' जहां वे अधिकतम और न्यूनतम तत्व को इंगित करेंगे, लेकिन उस सरणी के लिए क्रमबद्ध किया जाना चाहिए, इसलिए हमें पहले सरणी को सॉर्ट करने की आवश्यकता है, फिर पुन:व्यवस्थित सरणी को संग्रहीत करने के लिए उसी आकार की एक नई खाली सरणी बनाएं। अब सरणी पर पुनरावृति करें और यदि पुनरावृत्त तत्व सम सूचकांक पर है, तो arr[x] तत्व को खाली सरणी में जोड़ें और x को 1 से बढ़ाएँ। यदि तत्व एक विषम सूचकांक पर है, तो arr[ y ] तत्व जोड़ें। खाली सरणी और y को 1 से घटाएं। ऐसा तब तक करें जब तक कि y x से छोटा न हो जाए।

उदाहरण

#include <bits/stdc++.h>
using namespace std;
int main () {
   int arr[] = { 2, 4, 6, 8, 11, 13, 15 };
   int n = sizeof (arr) / sizeof (arr[0]);

   // creating a new array to store the rearranged array.
   int reordered_array[n];

   // sorting the original array
   sort(arr, arr + n);

   // pointing variables to minimum and maximum element index.
   int x = 0, y = n - 1;
   int i = 0;

   // iterating over the array until max is less than or equals to max.
   while (x <= y) {
   // if i is even then store max index element

      if (i % 2 == 0) {
         reordered_array[i] = arr[x];
         x++;
      }
      // store min index element
      else {
         reordered_array[i] = arr[y];
         y--;
      }
      i++;
   }
   // printing the reordered array.
   for (int i = 0; i < n; i++)
      cout << reordered_array[i] << " ";

   // or we can update the original array
   // for (int i = 0; i < n; i++)
   // arr[i] = reordered_array[i];
   return 0;
}

आउटपुट

2 15 4 13 6 11 8

उपरोक्त कोड की व्याख्या

  • चर को x=0 और y =array_length(n) - 1 के रूप में प्रारंभ किया जाता है ।
  • जबकि (x<=y) सरणी को तब तक पार करें जब तक कि x, y से बड़ा न हो जाए।
  • यदि गिनती सम (x) है, तो तत्व को अंतिम सरणी में जोड़ दिया जाता है, और चर x को 1 से बढ़ा दिया जाता है।
  • यदि i विषम है, तो (y)तत्व को अंतिम सरणी में जोड़ा जाता है, और चर y को 1 से घटाया जाता है।
  • आखिरकार, पुनर्क्रमित सरणी को reordered_array[ ] में संग्रहीत किया जाता है।

निष्कर्ष

इस लेख में, हमने दिए गए सरणी को सबसे छोटे, सबसे बड़े रूप में पुनर्व्यवस्थित करने के समाधान पर चर्चा की। हम उसी के लिए एक C++ प्रोग्राम भी लिखते हैं। इसी तरह, हम इस प्रोग्राम को किसी अन्य भाषा जैसे C, Java, Python, आदि में भी लिख सकते हैं। हमें उम्मीद है कि आपको यह लेख मददगार लगा होगा।


  1. सी++ में बीएसटी (बीएसटी में ऑर्डर सांख्यिकी) में के-वें सबसे छोटे तत्व का पता लगाएं

    मान लीजिए कि हमारे पास एक बाइनरी सर्च ट्री है और इनपुट के रूप में एक मान K है, तो हमें ट्री में K-वें सबसे छोटा तत्व खोजना होगा। तो, अगर इनपुट पसंद है k =3, तो आउटपुट 15 होगा। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - फ़ंक्शन को परिभाषित करें find_kth_smallest(), यह रूट लेगा, काउंट, k,

  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

  1. सी ++ प्रोग्राम एक ऐरे का सबसे बड़ा तत्व खोजने के लिए

    एक सरणी में कई तत्व होते हैं और एक सरणी में सबसे बड़ा तत्व वह होता है जो अन्य तत्वों से बड़ा होता है। उदाहरण के लिए। 5 1 7 2 4 उपरोक्त सरणी में, 7 सबसे बड़ा तत्व है और यह इंडेक्स 2 पर है। किसी सरणी के सबसे बड़े तत्व को खोजने का प्रोग्राम इस प्रकार दिया गया है। उदाहरण #include <iostream> u