0 ва 1-ро дар массив ҷудо кунед  


Сатҳи душворӣ осон
Аксар вақт пурсида мешавад Акколити Amazon Фаби MakeMyTrip PayPal Пардохт Зохо
тартиботи ҳарбӣ

Изҳороти мушкилот  

Фарз мекунем, ки шумо як ҳамаҷониба массиви. Масъалаи "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.

Шарҳ дар бораи 0s ва 1s ҷудошуда дар массив  

Бо назардошти асал аз ададҳо, дар ададҳо, он танҳо 0 ва 1-ро дар массив нигоҳ медорад. Массивро тавре тағир диҳед, ки ҳамаи сифрҳо ба тарафи чапи массив ва ҳамаи 1s унсурҳои массив ба тарафи рости массив гузаронида шаванд. Барои ин, мо мехоҳем, ки ҳамаи сифрҳоро ҳисоб кунем. Ин ҳисобҳои сифр ба мо дар аломатгузории сифрҳо дар тарафи чапи массив кӯмак мерасонанд.

ҳамчунин нигаред
Унсури калонтари оянда

Массивро бори аввал дар код гузаронида, ҳисоб кардани ҳамаи сифрҳои массивро ба даст оред, ин ҳисоб ба мо дар аломатгузории ҳамаи шумораи ҳисобкунии ҷойҳо аз тарафи чапи массив кӯмак хоҳад кард. Пас, барои ин, мо массивро тай карда, ҳар як арзиши arr [i] -ро месанҷем, оё он ба 0 баробар аст, агар он ба 0 баробар бошад, пас арзиши ҳисобро ба 1 зиёд кунем. Мо бояд эълом мекардем ва пеш аз ворид шудан ба ҳалқа, арзиши ҳисобро ба 0 оғоз кард. Пас аз гузаштан мо ҳисобро гирифтем.

Мо ҳисобкунии давраро ҳеҷ гоҳ намегузарем ва ҳар арзиши arr [i] -ро аз 0 қайд мекунемth индекс ба ҳисоб-1 шумораи ҷойҳо. Ҳоло, мо сифрҳо дар тарафи чапи массив дорем. Ҳоло мо бояд массивро аз ҳисоб то n гузарем, ки n дарозии массив аст. Пас, аз i = ҳисоб кунед, сарфи назар аз он ки арзиши ҳисоб чӣ гуна хоҳад буд, ҳама қиматҳоро то 1 навсозӣ кунед. Пас аз ҳамаи амалиётҳо мо массиви дилхоҳ дорем, 0ҳо дар тарафи чапи массив ва 1s дар тарафи рости массив .

0 ва 1-ро дар массив ҷудо кунед

татбиќи  

Барномаи C ++ барои 0s ва 1s ҷудошуда дар Array

#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

Барномаи Java барои 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 ҷудошуда дар массив  

Мураккабии вақт

Эй (н) ки дар "Н" шумораи унсурҳои массив аст.

ҳамчунин нигаред
Ҳалли Leetcode росткунҷаеро созед

Мураккабии фазо

Эй (н) ки дар "Н" шумораи унсурҳои массив аст.

ишора