अ‍ॅरेमध्ये 0 से आणि 1 से विभक्त करा


अडचण पातळी सोपे
वारंवार विचारले एकत्रित ऍमेझॉन फॅब मेकमायट्रिप पोपल पेटीएम Zoho
अरे

समस्या विधान

समजा आपल्याकडे एक आहे पूर्णांक रचना. अ‍ॅरेमध्ये सेग्रेगेट 0 से आणि 1 से "ही समस्या 0 आणि 1 एस मध्ये दोन भागांमध्ये अ‍ॅरेग्रेटेट करण्यास सांगते. 0 हे अ‍ॅरेच्या डाव्या बाजूस आणि 1 च्या अ‍ॅरेच्या उजवीकडे असले पाहिजेत.

उदाहरण

arr[]={1,0,1,1,0,1,1,0}
0 0 0 1 1 1 1 1
स्पष्टीकरण: सर्व 0 डावीकडे हलविल्या गेल्या आहेत आणि 1 उजवीकडे हलविल्या गेल्या आहेत.

अल्गोरिदम

1. Traverse the array and get the count of total zero’s in the array.
2. Push ‘0’ that

अ‍ॅरेमधील वेळा मोजा

.
3. Push ‘1’ (n – count) no of times in the array from the next position of 0 where we left inserting 0.
4. Print the array.

अ‍ॅरेमध्ये सेगरेट 0 से आणि 1 एस साठी स्पष्टीकरण

दिले अॅरे पूर्णांकांपैकी पूर्णांकात ते 0 आणि 1s अ‍ॅरेमध्येच ठेवेल. अ‍ॅरेची अशी व्यवस्था करा की सर्व शून्य अ‍ॅरेच्या डाव्या बाजूला सरकले जातील आणि अ‍ॅरेचे सर्व 1 एस एरे घटक डाव्या बाजूला सरकले जातील. यासाठी आम्ही सर्व शून्यांची गणना करणार आहोत. अ‍ॅरेच्या डाव्या बाजूला शून्य चिन्हांकित करण्यात ती शून्य संख्या आम्हाला मदत करेल.

अ‍ॅरेमधील सर्व शून्यांची संख्या मिळविण्यासाठी कोडमध्ये प्रथमच अ‍ॅरेचा आढावा घ्या, ही गणना अ‍ॅरेच्या डाव्या बाजूला असलेल्या सर्व मोजणी संख्या चिन्हांकित करण्यास मदत करेल. त्यासाठी आपण अ‍ॅरे मागे जाऊ आणि एर ची प्रत्येक व्हॅल्यू तपासू, [i] हे ० च्या बरोबरीचे असेल तर ते ० ने समान असल्याचे आढळल्यास मोजण्याचे मूल्य १ ने वाढवा. आपण घोषित केले पाहिजे. लूपमध्ये जाण्यापूर्वी आणि 0 पर्यंत मोजण्याचे मूल्य आरंभ केले. ट्रॅव्हर्स केल्यावर आम्हाला मोजणी मिळाली.

आम्ही कितीही वेळा लूप मोजू शकत नाही आणि एर [i] चे प्रत्येक मूल्य 0 वरून चिन्हांकित करूth मोजणी -1 स्थानांची अनुक्रमणिका. आता आपल्याकडे अ‍ॅरेच्या डाव्या बाजूला शून्य आहेत. आता आपल्याला अ‍ॅरेची मोजणी वरून एन पर्यंत जाणे आवश्यक आहे जेथे एनची लांबी n आहे. I = मोजण्यापासून सुरुवात करुन मोजणीचे मूल्य किती असेल ते पहा. सर्व मूल्ये १ वर अद्यतनित करत रहा .

अ‍ॅरेमध्ये 0 से आणि 1 से विभक्त करा

अंमलबजावणी

अ‍ॅरेमध्ये सेग्रेगेट 0 से आणि 1 एससाठी सी ++ प्रोग्राम

#include<iostream>

using namespace std;

void segregateZeroesOnes(int arr[], int n)
{
    int count = 0;

    for (int i = 0; i < n; i++)
    {
        if (arr[i] == 0)
            count++;
    }
    for (int i = 0; i < count; i++)
        arr[i] = 0;

    for (int i = count; i < n; i++)
        arr[i] = 1;
}

void printArray(int arr[], int n)
{
    for (int i = 0; i < n; i++)
        cout << arr[i] << " ";
}

int main()
{
    int arr[] = {1,0,1,1,0,1,1,0};
    int n = sizeof(arr) / sizeof(arr[0]);

    segregateZeroesOnes(arr, n);
    printArray(arr, n);

    return 0;
}
0 0 0 1 1 1 1 1

अ‍ॅरेमध्ये सेग्रेगेट 0 से आणि 1 एस साठी जावा प्रोग्राम

class segregateZeroesOnes
{
    public static void segregateZeroesOnes(int arr[], int n)
    {
        int count = 0;

        for (int i = 0; i < n; i++)
        {
            if (arr[i] == 0)
                count++;
        }
        for (int i = 0; i < count; i++)
            arr[i] = 0;

        for (int i = count; i < n; i++)
            arr[i] = 1;
    }
    
    public static void printArray(int arr[], int n)
    {
        for (int i = 0; i < n; i++)
            System.out.print(arr[i] + " ");
    }
    
    public static void main(String[] args)
    {
        int arr[] = new int[] { 1,0,1,1,0,1,1,0 };
        int n = arr.length;

        segregateZeroesOnes(arr, n);
        printArray(arr, n);

    }
}
0 0 0 1 1 1 1 1

अ‍ॅरेमध्ये विभक्त 0 से आणि 1 से साठी जटिलता विश्लेषण

वेळ कॉम्प्लेक्सिटी

O (n) जेथे “एन” अ‍ॅरे मधील घटकांची संख्या.

स्पेस कॉम्प्लेक्सिटी

O (n) जेथे “एन” अ‍ॅरे मधील घटकांची संख्या.

संदर्भ