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

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. - C++ में सरणी में उन सभी जोड़े (a,b) और (c,d) को खोजें जो ab = cd को संतुष्ट करते हैं

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

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

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

  1. - C# का उपयोग करके दिए गए पूर्णांक ऐरे से सभी शून्यों को ऐरे के अंत में कैसे ले जाएं?

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