Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.03.2015, 20:24   #1
RockerSiv
Пользователь
 
Регистрация: 10.03.2015
Сообщений: 10
По умолчанию Написать программу, копирующую один массив в другой

Добрый вечер(у меня по крайней мере сейчас он), есть очень интересный вопрос....
:
"
Написать программу, копирующую один массив в другой следующим образом: сначала копируются последовательно все элементы, большие 0, затем последовательно все элементы, равные 0, а затем последовательно все элементы, меньшие 0.
Было 5 6 -3 0 -9 4 -2 2 0 7 8 -4
Стало -3 -9 -2 -4 0 0 5 6 4 2 7 8
"

У одногрупников спрашивал, никто не знает...
Да и сам не врубился ....
c++
RockerSiv вне форума Ответить с цитированием
Старый 11.03.2015, 20:55   #2
Praud
Форумчанин
 
Аватар для Praud
 
Регистрация: 11.10.2012
Сообщений: 409
По умолчанию

Ну первое что приходит в голову - 3 цикла с 3 if, дерзай.
Praud вне форума Ответить с цитированием
Старый 11.03.2015, 21:06   #3
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

Если порядок элементов в массиве не принципиален, т.е. может быть как
-3 -9 -2 -4 0 0 5 6 4 2 7 8
так и
-3 -9 -2 -4 0 0 5 4 6 2 8 7
и т.п.
То можно решить одним циклом (чуть более оптимально).

Если порядок важен - то только тремя циклами... Ну можно первым циклом еще количество нулей подсчитать, но не особо это скажется на эффективность (в худшем случае - все элементы исходного массива нули, но мы это заранее не знаем, поэтому все равно обязаны толкнуть 3 полных цикла по первому массиву). Асимптотически - тем более нет разницы.

Последний раз редактировалось rrrFer; 11.03.2015 в 21:08.
rrrFer вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Записать в микрофон один текст и другой, а потом пустить один текст в правый канал, а другой - в левый FAN2010 Помощь студентам 6 18.04.2011 17:00
Как написать программу для копирования с одного сайта новости на другой? AquaKlaster Работа с сетью в Delphi 2 14.07.2009 16:53
В один массив нужно переслать чётные, а в другой - нечетные элементы матрицы. ...Diman... Паскаль, Turbo Pascal, PascalABC.NET 4 15.01.2009 15:15
Подскажите,плиз, как вставить один массив в другой Paige Hollivel Паскаль, Turbo Pascal, PascalABC.NET 3 01.07.2008 10:21