Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/25: Рейтинг темы: голосов - 25, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 13.12.2014
Сообщений: 32

Расположить элементы массива так, чтобы нули было в начале, а единицы в конце

11.10.2015, 13:56. Показов 5581. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дан массив, состоящий из нулей и единиц, нужно расположить элементы массива так, чтобы нули было в начале, а единицы в конце.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.10.2015, 13:56
Ответы с готовыми решениями:

Отсортировать массив из 0 и 1 так, чтобы все нули находились в начале, а все единицы - в конце массива
Тема: Функции 1. Дано одномерный массив, заполненный 0 и 1 в произвольном порядке. Отсортировать данный массив таким образом, чтобы все...

Отсортировать массив таким образом, чтобы все нули находились в начале, а единицы — в конце массива
Здравствуйте, дано такое задание Элементами массива IM(N) являются числа 0 и 1. Отсортировать этот массив таким образом, чтобы все нули...

Отсортировать данный массив таким образом, чтобы все нули находились в начале, а единицы - в конце массива
Элементами массива IM(N) являются числа 0 и 1. Отсортировать этот массив таким образом, чтобы все нули находились в начале, а единицы - в...

14
Dimension
595 / 463 / 223
Регистрация: 08.04.2014
Сообщений: 1,710
11.10.2015, 14:18
отсортируйте его
0
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,984
Записей в блоге: 32
11.10.2015, 14:20
За О(n) причем.
0
3 / 0 / 1
Регистрация: 11.10.2015
Сообщений: 16
11.10.2015, 14:35
в данном случае используем быструю сортировку:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import java.util.Arrays;
import java.util.Random;
 
 
public class SortFast01 {
 
    public static void main(String[] args) {
        // 
 
        int[] mas = new int [20];
        
        for (int i=0; i<mas.length; i++){
            Random rand = new Random();
            mas[i] = rand.nextInt(2);
 
            System.out.print(mas[i] + " ");
            }
        //быстрая сортировка:
        Arrays.sort(mas);
        
        System.out.println();
        
        //и вывод на экран:
        for (int i : mas) {
            System.out.print(i + " ");
        }
    }
}
0
 Аватар для Геомеханик
838 / 641 / 940
Регистрация: 26.06.2015
Сообщений: 1,409
11.10.2015, 15:13
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
 
template<unsigned N>
void sort_nz(int a[], unsigned n){
    unsigned i, nz[N] = {0};
    for(i = 0; i < n; ++i)
        ++nz[a[i]];
    
    i = 0;
    for(unsigned j = 0; j < N; ++j){
        for(unsigned p = 0; p < nz[j]; ++p)
            a[i++] = j;
    }
}
 
int main(void){
    int    a[] = { 1, 1, 0, 0, 0, 1, 0 };
    unsigned n = sizeof(a)/sizeof(a[0]);
 
    sort_nz<2>(a, n);
    for(unsigned i = 0; i < n; ++i)
        std::cout << a[i] << ' ';
    return 0;
}
1
0 / 0 / 0
Регистрация: 13.12.2014
Сообщений: 32
12.10.2015, 20:53  [ТС]
нужно за один цикл сделать и без использования сортировки.
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
12.10.2015, 21:12
Цитата Сообщение от shank923 Посмотреть сообщение
нужно за один цикл сделать и без использования сортировки.
Подсчитать количество нулей и заполнить массив.
1
 Аватар для Chertenok_n_13
219 / 125 / 99
Регистрация: 14.03.2011
Сообщений: 628
12.10.2015, 21:16
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
main(){
int mas[10];
int kol=0;
int i=0;
for (i=0; i<10; i++) {
scanf("%d", &mas[i]);
if (mas[i]==0) kol++;
            }
printf("\n\n");
for (i=0; i<10; i++)
{if (kol!=0) { mas[i]=0; kol--;} else mas[i]=1;
printf("%5d",mas[i]);
}
getch();
}
0
3 / 0 / 1
Регистрация: 11.10.2015
Сообщений: 16
12.10.2015, 21:18
ну тогда берите массив ArrayList длинной = количеству значений и при проверке по очереди:
если единица то отправляем в конец списка
если ноль то отправляем в начало
еще ноль в начало+1
еще единица в конец-1
и так до последнего значения.
один цикл и без сортировки
0
1 / 1 / 1
Регистрация: 10.10.2015
Сообщений: 17
12.10.2015, 21:42
нужно за один цикл сделать и без использования сортировки.
Попробуй пузырьковую сортировку
1
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
12.10.2015, 21:47
Цитата Сообщение от pti4ka Посмотреть сообщение
Цитата Сообщение от shank923 Посмотреть сообщение
нужно за один цикл сделать и без использования сортировки.
Попробуй пузырьковую сортировку
А у тебя перспективная логика...
0
0 / 0 / 0
Регистрация: 13.12.2014
Сообщений: 32
13.10.2015, 00:42  [ТС]
Можете это реализовать на си++?
0
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,984
Записей в блоге: 32
13.10.2015, 01:10
За один проход?.... Я не могу.
0
 Аватар для Barrent
252 / 128 / 54
Регистрация: 04.05.2013
Сообщений: 346
13.10.2015, 01:33
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
    int A[]{ 0,1,1,1,0,1,1,0 };
    int* begin = A;
    int* end = &A[sizeof(A) / sizeof(A[0]) - 1];
    while (begin < end) {
        if (*begin == 1 && *end == 0) {
            swap(*begin, *end);
            begin++;
            end--;  
            continue;
        }
        if (*begin == 1 && *end == 1) {
            end--;
            continue;
        }
        if (*begin == 0 && *end == 0) {
            begin++;
            continue;
        }
        begin++;
        end--;
    }
    for (int a : A)
        cout << a;
    cout << endl;
1
1 / 1 / 4
Регистрация: 17.02.2013
Сообщений: 12
13.10.2015, 06:50
C++
1
2
3
4
5
6
7
for(int i = 0, k = 0; i < N; ++i)
       if(m[i] == 0)
       {
        m[i] = 1;
        m[k] = 0;
        ++k;
       }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.10.2015, 06:50
Помогаю со студенческими работами здесь

Переставить элементы массива так, чтобы в начале оказались четные элементы, а в конце - нечетные
Очередная,теперь уже последняя &quot;проблема&quot; с вба.Необходимо переставить элементы массива так,чтобы в начале оказались четные элементы,а в...

Переставить элементы так, чтобы четные элементы стояли в начале массива, а нечетные в конце
Переставить элементы так, чтобы четные элементы стояли в начале массива, а нечетные в конце.(Метод простого выбора).

Переставить элементы, чтобы все положительные элементы стояли в начале массива, а все отрицательные и нули - в конце
«C»: Заполнить массив случайными числами в интервале и переставить элементы так, чтобы все положительные элементы стояли в начала...

Расположить элементы массива так, чтобы в начале располагались все отрицательные элементы, а затем положительные.
Расположить элементы массива так, чтобы в начале располагались все отрицательные элементы, а затем положительные. В одномерном массиве.

Расположить элементы массива так,чтобы отрицательные были в конце
1. Расположить элементы массива так,чтобы отрицательные были в конце 2. Заменить первый отрицательный элемент массива на максимальный ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru