0 ۽ 1s ترتيب ڏيو


تڪليف جي سطح آسان
بار بار پڇڻ ۾ قبول ڪريو Amazon فاب MakeMyTrip جو آهي PayPal پيٽرم زو
ڪيريو

مسئلي جو بيان

فرض ڪيو ته توهان وٽ آهي انٽرويو صف. مسئلو "صف ۾ 0s ۽ 1s کي ڌار ڪريو" صف کي ٻن حصن ۾ ، 0s ۽ 1s ۾ الڳ ڪرڻ جو پڇي ٿو. 0 کي صف جي کاٻي پاسي ۽ 1 کي سر جي سا rightي پاسي هجڻ گهرجي.

مثال

arr[]={1,0,1,1,0,1,1,0}
0 0 0 1 1 1 1 1
وضاحت: سڀ 0 کي کاٻي طرف منتقل ڪيو ويو آهي ۽ 1 کي سا rightي طرف منتقل ڪيو ويو آهي.

الورورٿم

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.

وضاحت ڪئي وئي آھي 0s ۽ 1s جي لاءِ ھڪڙي لياري ۾

ڏنو ويو آهي صف انٽيگرن جي ، انوگرز ۾ ، اهو صرف 0s ۽ 1s واري ساري کي اسٽور ڪندو. صف کي اهڙي طرح وري ترتيب ڏيو ته صفائي جي کاٻي پاسي واريون سڀئي صفرون منتقل ٿي وينديون ۽ صف جي 1s جا عنصر قطار جي سا sideي طرف منتقل ڪيا ويندا. ان لاءِ اسان سڀ زيرو ڳڻپ ڪرڻ وارا آهيون. ان صفر ڳڻپ اسان جي صف جي کاٻي پاسي جي صفر کي نشان لڳائڻ ۾ مدد ڪندي.

صف ۾ سڀني کان پهرين صفر جو حساب وٺڻ لاءِ صف کي ترتيب ڏيو ، هيءَ ڳڻپ اسان کي صف جي کاٻي پاسي کان جڳهن جي ڳڻپ واري نمبر جي نشان لڳائڻ ۾ مدد ڪندي. تنهن لاءِ انهي لاءِ اسان صف کي ڳوليندا ۽ هر قيمت جي [[i] کي جانچ ڪنداسين ، ڇا اهو برابر آهي 0 ، جيڪڏهن اهو 0 جي برابر برابر مليو آهي ، ته پوءِ عددي جي قيمت کي 1 تائين وڌايو وڃي. ۽ لاڪ ۾ داخل ٿيڻ کان پهريان 0 جي ڳڻپ شروع ڪئي. پيچرو چڙهڻ بعد اسان کي ڳڻتي ملي.

اسان لڪيل ڳڻپ کي ڪابه وقت پار نه ڪنداسين ، ۽ هر نمبر جي آر او [i] کي نشان لڳايوth نمبر 1 جڳهن جي ڳڻپ ڪريو. هاڻي ، اسان وٽ صفن جي کاٻي پاسي وارا زيرو آهن. ھاڻي اسان کي ڳڻڻ کان وٺي آر کان ٻاھر نڪرڻو آھي جتي اين جي ڊگھائي آھي. تنهنڪري مون کان شروعات = ڳڻپ جو ويل ڪجھ به ٿيندو ، سڀني قدرن کي تازه ڪاري رکو 1. سڀني آپريشنز کان پوءِ ، اسان وٽ گهربل سر ، صف جي کاٻي پاسي 0s ۽ صف جي سا sideي طرف 1s آهي .

0 ۽ 1s ترتيب ڏيو

تي عملدرآمد

سي ترتيب ڏنل 0s ۽ 1s لاءِ ڊائريڪٽ ۾

#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

جاوا پروگرام سئيگريزٽ 0s ۽ 1s لاءِ ايريريز ۾

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

قطعي 0s ۽ 1s کي گڏ ڪرڻ واري پيچري ۾ تجزيو

وقت جي پيچيدگي

اي (ن) جتي “ن” صف ۾ موجود عنصرن جو تعداد آهي.

خلائي پيچيدگي

اي (ن) جتي “ن” صف ۾ موجود عنصرن جو تعداد آهي.

حوالي