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

एक सरणी को इस तरह पुनर्व्यवस्थित करें कि प्रत्येक विषम अनुक्रमित तत्व C++ में अपने पिछले से बड़ा हो

हमें एक सकारात्मक पूर्णांक प्रकार सरणी दी गई है, मान लें, किसी भी आकार का arr[]। कार्य एक सरणी को इस तरह से पुनर्व्यवस्थित करना है कि एक विषम सूचकांक में मौजूद सभी तत्वों का मूल्य सम सूचकांक में प्रस्तुत तत्व से अधिक होना चाहिए और परिणाम को प्रिंट करना चाहिए।

आइए इसके लिए विभिन्न इनपुट आउटपुट परिदृश्य देखें -

इनपुट - int arr[] ={2, 1, 5, 4, 3, 7, 8}

आउटपुट - व्यवस्था से पहले सरणी:2 1 5 4 3 7 8 एक सरणी की इस तरह की व्यवस्था कि प्रत्येक विषम अनुक्रमित तत्व पिछले से बड़ा है:1 4 2 5 3 8 7

स्पष्टीकरण - हमें आकार 7 का एक पूर्णांक सरणी दिया गया है। अब, हम सम सूचकांक पर तत्वों को विषम सूचकांक वाले तत्वों के साथ स्वैप करेंगे यदि अनुक्रमित तत्व भी अधिक हैं यानी।

Arr[0] > arr[1] = call swap = {1, 2, 5, 4, 3, 7, 8}
Arr[2] > arr[3] = call swap = {1, 2, 4, 5, 3, 7, 8}
Arr[6] > arr[5] = call swap = {1, 2, 4, 5, 3, 8, 7}
Arr[2] > arr[1] = call swap = {1, 4, 2, 5, 3, 8, 7}

इनपुट - int arr[] ={3, 2, 6, 9}

आउटपुट - व्यवस्था से पहले सरणी:3 2 6 9एक सरणी का पुनर्व्यवस्थापन इस तरह से कि प्रत्येक विषम अनुक्रमित तत्व पिछले से बड़ा है:2 3 6 9

स्पष्टीकरण - हमें आकार 4 का एक पूर्णांक सरणी दिया गया है। अब, हम सम सूचकांक पर तत्वों को विषम सूचकांक वाले तत्वों के साथ स्वैप करेंगे यदि अनुक्रमित तत्व भी अधिक हैं यानी Arr[0]> arr[1] =कॉल स्वैप ={2, 3, 6, 9}। स्वैप विधि को आगे कॉल करने की आवश्यकता नहीं है क्योंकि स्थिति में सभी तत्व शर्तों को पूरा करते हैं

नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है

  • पूर्णांक प्रकार के तत्वों की एक सरणी इनपुट करें और एक सरणी के आकार की गणना करें।

  • व्यवस्था से पहले सरणी को प्रिंट करें और फ़ंक्शन को कॉल करें पुनर्व्यवस्था (गिरफ्तारी, आकार)

  • समारोह के अंदर पुनर्व्यवस्था (गिरफ्तारी, आकार)

    • पूर्णांक प्रकार का एक वेरिएबल बनाएं मान लें, ptr और इसे size-1 के साथ सेट करें।

    • प्रारंभ लूप फॉर, i से 0 तक i ptr से कम और i =i + 1। लूप के अंदर, जांचें कि arr[i] arr[i+1] से बड़ा है या नहीं, फिर swap(arr[i], arr[ को कॉल करें। i+1]).

    • IF आकार और 1 की जाँच करें, फिर i से ptr तक के लिए लूप शुरू करें जब तक कि मैं 0 से अधिक और i =i - 2. लूप के अंदर, IF arr [i] arr से अधिक [i - 1] की जाँच करें, फिर स्वैप (arr [i] को कॉल करें। ], गिरफ्तार[i-1])

  • किसी सरणी के मानों की पुनर्व्यवस्था के बाद सरणी को प्रिंट करें।

उदाहरण

#include <iostream>
using namespace std;
void Rearrangement(int arr[], int size){
   int ptr = size - 1;
   for(int i = 0; i < ptr; i = i+2){
      if(arr[i] > arr[i+1]){
         swap(arr[i], arr[i+1]);
      }
   }
   if(size & 1){
      for(int i = ptr; i > 0; i = i-2){
         if(arr[i] > arr[i-1]){
            swap(arr[i], arr[i-1]);
         }
      }
   }
}
int main(){
   //input an array
   int arr[] = {2, 1, 5, 4, 3, 7, 8};
   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] << " ";
   }
   //calling the function to rearrange the array
   Rearrangement(arr, size);
   //print the array after rearranging the values
   cout<<"\nRearrangement of an array such that every odd indexed element is greater than it previous is: ";
   for(int i = 0; i < size; i++){
      cout<< arr[i] << " ";
   }
   return 0;
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा

Array before Arrangement: 2 1 5 4 3 7 8
Rearrangement of an array such that every odd indexed element is greater than it previous is: 1 4 2 5 3 8 7

  1. C++ में काउंट डिरेंजमेंट (क्रमपरिवर्तन जैसे कि कोई तत्व अपनी मूल स्थिति में प्रकट नहीं होता है)

    डिरेंजमेंट एन नंबरों का क्रमचय है जैसे कि मूल स्थिति में कोई संख्या दिखाई नहीं देती है। उदाहरण के लिए { 1,2,3 } का एक संभावित विचलन { 2,1,3 } है। इसमें कोई तत्व अपनी मूल स्थिति में नहीं है। यहाँ लक्ष्य N संख्याओं के लिए संभावित विचलनों की गणना करना है। हम इसे एक पुनरावर्ती समाधान का उपयोग करके करें

  1. सी ++ प्रोग्राम 'के' को खोजने के लिए ऐसा है कि प्रत्येक सरणी तत्व के साथ इसका मॉड्यूलस समान है

    इस लेख में, हम एक पूर्णांक k को खोजने के लिए एक प्रोग्राम पर चर्चा करेंगे, जैसे कि किसी दिए गए सरणी के प्रत्येक तत्व के साथ इसका मापांक समान हो। उदाहरण के लिए, मान लें कि हमें एक सरणी दी गई है, arr = {12, 22, 32} तब हमारे पास k =1, 2, 5, 10 का आउटपुट मान होता है। y) में दो मानों का मामला लें। तब ह

  1. किसी सरणी के तत्वों को तब तक जोड़ना जब तक कि प्रत्येक तत्व C++ में k से बड़ा या उसके बराबर न हो जाए।

    सरणी - एक सरणी एक ही डेटा प्रकार के तत्वों का एक कंटेनर होता है, जिसके तत्व 0 अनुक्रमित होते हैं। इस समस्या में, हम पूर्णांकों की एक सरणी का उपयोग करेंगे। और जांचें कि सभी तत्व दी गई संख्या से बड़े हैं या नहीं। यहां हम जांच करेंगे कि सरणी के सभी तत्व दिए गए संख्या k से बड़े या बराबर हैं या नहीं। यद