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

सम सूचकांक पर सम संख्याएँ और C++ में विषम सूचकांक पर विषम संख्याएँ

इस समस्या में, हमें n / 2 सम मानों और n / 2 विषम मानों से मिलकर n आकार का एक arr [] दिया जाता है। हमारा कार्य सम सूचकांक पर सम संख्याओं और विषम संख्याओं को विषम सूचकांक पर रखने के लिए एक प्रोग्राम बनाना है।

समस्या को समझने के लिए एक उदाहरण लेते हैं,

इनपुट: गिरफ्तारी [] ={5, 1, 6, 4, 3, 8}

आउटपुट: गिरफ्तारी [] ={6, 1, 5, 4, 3, 8}

समाधान दृष्टिकोण -

एक समाधान सरणी का पता लगाएगा और फिर अंतिम संख्या ज्ञात करेगा जो सम स्थिति में नहीं है और इसे अगले ऑफ प्लेस वैल्यू के साथ बदल दिया जाएगा। यह एक आशाजनक समाधान है लेकिन समाधान को दो अनुक्रमितों का उपयोग करके एक सम और एक विषम के लिए उपयोग करके अधिक कुशल बनाया जा सकता है। यदि सम सूचकांक पर कोई तत्व है जो सम नहीं है और एक विषम तत्व जो विषम सूचकांक पर नहीं है, तो हम उन्हें स्वैप करेंगे अन्यथा दोनों सूचकांकों को दो से बढ़ा देंगे।

हमारे समाधान की कार्यप्रणाली को दर्शाने वाला कार्यक्रम,

उदाहरण

#include <iostream>
using namespace std;

void O_EReshuffle(int arr[], int n) {
   
   int oIndex = 1;
   int eIndex = 0;
   
   for(int i = 0; i < n; ) {
     
      while (eIndex < n && arr[eIndex] % 2 == 0)
         eIndex += 2;
         
      while (oIndex < n && arr[oIndex] % 2 == 1)
         oIndex += 2;
         
      if (eIndex < n && oIndex < n)
         swap (arr[eIndex], arr[oIndex]);
         
      else
         break;
   }
}

int main()
{
   int arr[] = { 5, 1, 6, 4, 3, 8 };
   int n = sizeof(arr) / sizeof(arr[0]);

   cout << "Array before Reshuffling: ";
   for(int i = 0; i < n ; i++){
      cout<<arr[i]<<"\t";
   }
   O_EReshuffle(arr, n);

   cout<<"\nArray after Reshuffling: ";
   for(int i = 0; i < n ; i++){
      cout<<arr[i]<<"\t";
   };

   return 0;
}

आउटपुट -

Array before Reshuffling: 5 1 6 4 3 8
Array after Reshuffling: 4 1 6 5 8 3

  1. C++ में विषम और सम संख्या वाले सभी स्तरों को प्रिंट करें

    इस समस्या में हमें एक पेड़ दिया जाता है। और हमें सभी स्तरों को सम संख्या में नोड्स और विषम संख्या में नोड्स के साथ प्रिंट करना होगा। आइए अवधारणा को बेहतर ढंग से समझने के लिए एक उदाहरण लेते हैं आउटपुट - Levels with odd number of nodes: 1, 3, 4 Levels with even number of nodes: 2 स्पष्टीकरण - पह

  1. C++ में सम सूचकांक द्विपद गुणांकों का योग ज्ञात कीजिए

    मान लें कि हमारे पास एक संख्या n है, हमें $$\बाएं(\begin{array}{c}n\\ 0\end{array}\right)+\left(\begin) जैसे अनुक्रमित द्विपद गुणांकों का योग ज्ञात करना होगा {सरणी} {सी} एन \\ 2 \ अंत {सरणी} \ दाएं) + \ बाएं (\ प्रारंभ {सरणी} {सी} एन \\ 4 \ अंत {सरणी} \ दाएं) + \ बाएं (\ प्रारंभ {सरणी }{c}n\\ 6\end{

  1. सी ++ में दोनों तरफ सम या विषम संख्याओं की समान गणना के साथ ऐरे इंडेक्स

    यहां हम एक समस्या देखेंगे, मान लीजिए कि एक सरणी दी गई है। एन तत्व हैं। हमें एक सूचकांक ज्ञात करना है, जहाँ इसके बायीं ओर की सम संख्याओं की बारंबारता और इसके दायीं ओर की सम संख्याओं की बारंबारता समान हो, या इसके बायीं ओर की विषम संख्याओं की आवृत्ति इसके दाईं ओर की विषम संख्याओं की आवृत्ति के समान हो।