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

एक केस प्रिंट करें जहां दिए गए सॉर्टिंग एल्गोरिदम सी ++ में विफल हो जाते हैं


इस समस्या में, हमें एक छँटाई एल्गोरिथ्म और एक संख्या n दी गई है। हमारा कार्य n तत्वों की एक सरणी को प्रिंट करना है जिसे एल्गोरिथम द्वारा क्रमबद्ध नहीं किया जा सकता है। यानी एल्गोरिथम विफल हो जाएगा।

एल्गोरिदम

loop i from 1 to n-1
   loop j from i to n-1
   if a[j]>a[i+1]
      swap(a[i], a[j+1])

आइए इस सॉर्टिंग एल्गोरिदम को देखें, यह दो नेस्टेड लूप का उपयोग कर रहा है। बाहरी 1 से n-1 तक शुरू होगा और आंतरिक i से n-1 तक, और प्रत्येक पुनरावृत्ति पर आंतरिक लूप तत्व और बाहरी लूप तत्वों के मूल्य की जांच करेगा और ऑर्डर तत्वों से बाहर स्वैप करेगा।

तो यह एल्गोरिथम उस मामले के लिए विफल हो जाएगा जहां तत्वों को उल्टे क्रम में क्रमबद्ध किया जाता है। साथ ही, हम इसका समाधान तभी खोज सकते हैं जब n<=2.

So, for n = 5.
Output : 5 4 3 2 1
Time complexity − O(N)

उदाहरण

हमारे समाधान के कार्यान्वयन को दिखाने के लिए कोड

#include <iostream>
using namespace std;
void invalidCase(int n) {
   if (n <= 2) {
      cout << -1;
      return;
   }
   for (int i = n; i >= 1; i--)
      cout<<i<<" ";
}
int main() {
   int n = 6;
   cout<<"The case in which the algorithm goes invalid for "<<n<<" element array is :\n";
   invalidCase(n);
   return 0;
}

आउटपुट

जिस स्थिति में एल्गोरिथम 6 तत्व सरणी के लिए अमान्य हो जाता है वह है -

6 5 4 3 2 1

  1. C++ में दी गई श्रेणी में 'M' से विभाज्य संख्याओं की गणना करें

    हमें तीन नंबर ए, बी और एम दिए गए हैं। ए और बी संख्याओं की सीमा [ए, बी] को परिभाषित करते हैं। लक्ष्य ए और बी के बीच की संख्याओं को गिनना है जो एम से विभाज्य हैं। हम i=A से M के पहले गुणक तक शुरू करेंगे। यदि i%M=0 है तो वेतन वृद्धि की संख्या। अब इंक्रीमेंट i तक i<=बैंड काउंट बढ़ाएँ। आइए उदाहरणों से

  1. दिए गए श्रेणी में सभी तत्वों का XOR [L, R] C++ . में

    इस समस्या में, हमें दो पूर्णांक L और R दिए गए हैं जो एक श्रेणी को दर्शाते हैं। हमारा काम [L, R] की सीमा के भीतर सभी तत्वों का xor खोजना है। समस्या को समझने के लिए एक उदाहरण लेते हैं, इनपुट - एल=3, आर =6 स्पष्टीकरण − 3^4^5^6 = इस समस्या को हल करने के लिए, हम R का MSB पाएंगे। उत्तर का MSB R से बड़ा

  1. दिए गए मैट्रिक्स को C++ में वामावर्त सर्पिल रूप में प्रिंट करें

    इस समस्या में, हमें एक 2-आयामी मैट्रिक्स दिया गया है। और हमारा काम मैट्रिक्स के तत्वों को वामावर्त सर्पिल में से प्रिंट करना है। वामावर्त सर्पिल रूप - यह एक सर्पिल ट्रैवर्सल है जो ऊपर-बाएं से शुरू होता है और वामावर्त दिशा में पहले नीचे-दाएं-ऊपर-बाएं जाता है। वामावर्त ट्रैवर्सल 1 5 9 13 14 15 16