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

एक सरणी को इस तरह पुनर्व्यवस्थित करें कि 'arr[j]' 'i' बन जाए यदि 'arr[i]' C++ में 'j' है

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

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

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

आउटपुट टी - व्यवस्था से पहले सरणी:3 4 1 2 0 एक सरणी की पुनर्व्यवस्था जैसे कि एआर [जे] बन जाता है अगर एआर [आई] जे है:4 2 3 0 1

स्पष्टीकरण - हमें आकार 6 का एक पूर्णांक सरणी और 6 से कम मान वाले सभी तत्वों को दिया गया है। अब, हम सरणी को पुनर्व्यवस्थित करेंगे अर्थात arr[1] 4 है, arr[4] =1; एआर [2] 1 है, एआर [1] =2; गिरफ्तारी [3] is2, गिरफ्तारी [2] =3; गिरफ्तारी [4] 0 है, गिरफ्तारी [0] =4। इसलिए, अंतिम सरणी 4 2 3 0 1 है।

इनपुट टी - int arr[] ={2, 0, 1, 3}

आउटपुट - व्यवस्था से पहले सरणी:2 0 1 3एक सरणी का पुनर्व्यवस्थापन जैसे कि arr[j] i हो जाता है यदि arr[i] j है:1 2 0 3

स्पष्टीकरण - हमें आकार 6 का एक पूर्णांक सरणी और 6 से कम मान वाले सभी तत्वों को दिया जाता है। अब, हम सरणी को पुनर्व्यवस्थित करेंगे अर्थात arr[0] is 2, arr[2] =0; एआर [1] 0 है, एआर [0] =1; एआर [2] is1, एआर [1] =2; arr[3] 3 है, arr[3] =3. इसलिए, अंतिम सरणी 1 2 0 3 है।

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

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

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

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

    • पूर्णांक प्रकार मानों की एक सरणी बनाएं जैसे ptr[] सरणी arr[] के समान आकार का।

    • प्रारंभ लूप फॉर, i से 0 तक i से i आकार से कम। लूप के अंदर, ptr[arr[i]] को i पर सेट करें।

    • I से 0 तक के लिए लूप प्रारंभ करें जब तक कि i आकार से कम न हो। लूप के अंदर, arr[i] को ptr[i] पर सेट करें।

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

उदाहरण

#include <bits/stdc++.h>
using namespace std;
void Rearrangement(int arr[], int size){
   int ptr[size];
   for(int i = 0; i < size; i++){
      ptr[arr[i]] = i;
   }
   for(int i = 0; i < size; i++){
      arr[i] = ptr[i];
   }
}
int main(){
   //input an array
   int arr[] = {3, 4, 1, 2, 0};
   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 ‘arr[j]’ becomes ‘i’ if ‘arr[i]’ is ‘j’ is: ";
   for(int i = 0; i < size; i++){
      cout<< arr[i] << " ";
   }
   return 0;
}

आउटपुट

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

Array before Arrangement: 3 4 1 2 0
Rearrangement of an array such that ‘arr[j]’ becomes ‘i’ if ‘arr[i]’ is ‘j’ is: 4 2 3 0 1

  1. एक क्रमबद्ध सरणी में सभी ट्रिपल खोजें जो सी ++ में ज्यामितीय प्रगति बनाता है

    मान लीजिए कि हमारे पास अलग-अलग सकारात्मक पूर्णांक के साथ एक क्रमबद्ध सरणी है। हमें सभी त्रिगुणों को खोजना है, जो अभिन्न सामान्य अनुपात के साथ ज्यामितीय प्रगति बनाते हैं। मान लीजिए कि सरणी तत्व [1, 2, 6, 10, 18, 54] हैं, ट्रिपल (2, 6, 18), और (6, 18, 54) हैं, ये ज्यामितीय प्रगति बना रहे हैं। इसे हल

  1. एक सरणी में सभी जोड़े (ए, बी) खोजें जैसे कि सी ++ में% बी =के

    मान लीजिए कि हमारे पास एक सरणी ए है, उस सरणी से, हमें सभी जोड़े (ए, बी) प्राप्त करना है जैसे कि ए% बी =के। मान लीजिए कि सरणी A =[2, 3, 4, 5, 7] और k =3 है, तो जोड़े (7, 4), (3, 4), (3, 5), (3, 7) हैं। इसे हल करने के लिए, हम सूची को देखेंगे और जांचेंगे कि दी गई शर्त संतोषजनक है या नहीं। उदाहरण #inc

  1. C++ में Array Decay क्या है?

    किसी सरणी के प्रकार और आयामों के नुकसान को सरणी क्षय के रूप में जाना जाता है। यह तब होता है जब हम पॉइंटर या वैल्यू द्वारा एरे को फंक्शन में पास करते हैं। पहला पता उस सरणी को भेजा जाता है जो एक सूचक है। इसीलिए, सरणी का आकार मूल नहीं है। यहाँ C++ भाषा में सरणी क्षय का एक उदाहरण दिया गया है, उदाहरण #i