![]() |
|
![]() ![]() ![]() |
|
ArniLand |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 227 Регистрация: 17.8.2008 Репутация: нет Всего: нет |
Нужно преобразовать массив из целых чисел, который состоит из положительных и отрицательных элементов, чтобы вначале располагались положительные элементы, затем отрицательные. Вариант использование сортировки просьба не рассматривать.
|
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 7 Всего: 183 |
Вообще-то любое переупорядочивание можно назвать сортировкой. В данном случае подойдет алгоритм partition из стандартной библиотеки C++.
Если у тебя не C++, то несложно реализовать самому: перебираем элементы массива, пока они положительные, как только встретишь отрицательный, начинаешь двигаться с конца, пока не встретишь положительный, затем меняешь их местами; далее продолжаешь это движение навстречу друг другу. -------------------- ... |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
И в чём проблема?
Обрабатываем масиив, используя 2 указателя. Первый идёт с начала, второй с конца. Первый останавливается, встретив отрицательный элемент, второй - встретив положительный. Если оба указателя остановились - соотв. элементы меняются местами, и процесс продолжается. Когда указатели встретились - процесс завершён. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 7 Всего: 183 |
Akina, респект, у тебя значительно лучше получилось изложить этот алгоритм.
![]() -------------------- ... |
|||
|
||||
_Y_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1651 Регистрация: 27.11.2006 Репутация: 8 Всего: 34 |
Ну если задаться удовлетворением этого странного условия, то можно так:
И никакого намека на вражескую сортировку ![]() -------------------- Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:) |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
В зависимости от того, какое сравнение с нулём (строгое или нет) будет использовано, все нули ссыплются в один из массивов... но поскольку ноль принято считать всё-таки числом неотрицательным, то ему место среди положительных... А можно просто изначально МР инициализировать нулями, а при обработке нули тупо игнорировать. Правда, это увеличит вдвое количество сравнений. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
_Y_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1651 Регистрация: 27.11.2006 Репутация: 8 Всего: 34 |
Akina, поскольку массив целочисленный, то строгое сравнение, конечно.
Но мы уже идем в дебри, т.к. про нули в условиях задачи вообще ничего сказано не было. Может нулей вООбще не бывает ![]() ![]() -------------------- Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:) |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |