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

शुरू करने के लिए सभी शून्य को स्थानांतरित करें और सी ++ में यादृच्छिक पूर्णांकों की एक सरणी में समाप्त करने के लिए

इस ट्यूटोरियल में, हम एक प्रोग्राम लिखने जा रहे हैं जो सभी जीरो को आगे और एक को एरे के अंत में ले जाता है।

शून्य के साथ एक सरणी और यादृच्छिक पूर्णांक के साथ दिया गया। हमें सभी शून्यों को शुरू करने के लिए और एक को सरणी के अंत में ले जाना है। आइए एक उदाहरण देखें।

इनपुट

arr = [4, 5, 1, 1, 0, 0, 2, 0, 3, 1, 0, 1]

आउटपुट

0 0 0 0 4 5 2 3 1 1 1 1

एल्गोरिदम

  • ऐरे को इनिशियलाइज़ करें।

  • किसी अनुक्रमणिका को 1. . से प्रारंभ करें

  • दिए गए सरणी पर पुनरावृति करें।

    • यदि वर्तमान तत्व शून्य नहीं है, तो वर्तमान तत्व के साथ सूचकांक में मान को अपडेट करें।

    • सूचकांक बढ़ाएँ।

  • एक लूप लिखें जो उपरोक्त अनुक्रमणिका से n . पर पुनरावृत्त हो

    • सभी तत्वों को 1. . में अपडेट करें

  • इसी तरह, 0 . के लिए करें . इंडेक्स को बढ़ाने के बजाय, सभी शून्य को एरे के सामने ले जाने के लिए इसे घटाएं।

कार्यान्वयन

C++ में उपरोक्त एल्गोरिथम का कार्यान्वयन निम्नलिखित है

#include <bits/stdc++.h>
using namespace std;
void update1And0Positions(int arr[], int n) {
   int index = 0;
   for (int i = 0; i < n; i++) {
      if (arr[i] != 1) {
         arr[index++] = arr[i];
      }
   }
   while (index < n) {
      arr[index++] = 1;
   }
   index = 0;
   for (int i = n - 1; i >= 0; i--) {
      if (arr[i] == 1) {
         continue;
      }
      if (!index) {
         index = i;
      }
      if (arr[i] != 0) {
         arr[index--] = arr[i];
      }
   }
   while (index >= 0) {
      arr[index--] = 0;
   }
}
int main() {
   int arr[] = { 4, 5, 1, 1, 0, 0, 2, 0, 3, 1, 0, 1 };
   int n = 12;
   update1And0Positions(arr, n);
   for (int i = 0; i < n; i++) {
      cout << arr[i] << " ";
   }
   cout << endl;
   return 0;
}

आउटपुट

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

0 0 0 0 4 5 2 3 1 1 1 1

  1. सरणी में सभी जोड़े (ए, बी) और (सी, डी) खोजें जो सी ++ में एबी =सीडी को संतुष्ट करते हैं

    मान लीजिए कि हमारे पास एक सरणी ए है, उस सरणी से, हमें दो जोड़े (ए, बी) और (सी, डी) चुनना है, जैसे कि एबी =सीडी। मान लीजिए कि सरणी A =[3, 4, 7, 1, 2, 9, 8] है। आउटपुट जोड़े (4, 2) और (1, 8) हैं। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - i :=0 से n-1 के लिए, करें जे के लिए:=i + 1 से n-1 तक, कर

  1. सी ++ प्रोग्राम सरणी को विभाजित करने और अंत में पहला भाग जोड़ने के लिए?

    यहां हम देखेंगे कि किसी सरणी को कैसे विभाजित किया जाए, और अंतिम स्थिति में विभाजन के बाद पहला भाग जोड़ें। मान लीजिए कि सरणी सामग्री {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} हैं। हम इस परिचय को दो भागों में काटना चाहते हैं। पहला भाग इंडेक्स 0 से 3 (विभाजन आकार 4) से है, और दूसरा भाग आराम है। अंत में पहले भाग क

  1. सी # का उपयोग करके पूर्णांक संख्याओं के दिए गए सरणी से सभी शून्य को सरणी के अंत में कैसे स्थानांतरित करें?

    एक विधि बनाएं MoveZeros, सरणी के माध्यम से पार करें और सरणी में शून्य की संख्या गिनें। गिनती के आकार के आधार पर सभी अंतिम कोशिकाओं को शून्य बना दें। यदि सरणी की लंबाई शून्य या खाली है, तो प्रसंस्करण के बिना वापस लौटें। अंतिम परिणाम अंक Array में होगा। समय जटिलता O(N) है क्योंकि हम एक बार सरणी से गुज