![]() |
|
Модераторы: Poseidon |
![]()
|
|
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: нет Всего: 137 |
Массив модифицировать таким образом что бы суммы элементов в модифицированном массиве располагающихся на равном удалении от начала и конца массива возрастали с удалением пары элементов от концов массива.
Примечания: • под массивом понимается массив из 50 элементов. Элементы целые, положительные, меньше 26; • ввод данных осуществляется из файла, файл генерируется отдельной программой с возможностью ввода как случайных элементов, так и с клавиатуры; |
|||
|
||||
| Rodman |
|
|||
|
CIO ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 6144 Регистрация: 7.5.2006 Где: Ukraine ⇛ Kyiv ci ty Репутация: 26 Всего: 122 |
брррр.... я не совсем пойму... приведи пример исходного и результата массивов... чтоб я закономерность понял... и немного объяснений не помешает... |
|||
|
||||
| Strannik |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 25.1.2007 Репутация: 1 Всего: 2 |
Ну что-то вроде такого:
было 1 2 3 4 5 6 стало 1 3 5 6 4 2 1+2>3+4>5+6 Добавлено @ 12:35 Если можно использовать доп. массив, то вроде просто:
|
|||
|
||||
| JAPH |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 312 Регистрация: 8.1.2007 Где: Ленобласть Репутация: 12 Всего: 23 |
А я сделал так:
Это сообщение отредактировал(а) JAPH - 12.2.2007, 12:42 -------------------- Что непонятно - спрашиваем |
|||
|
||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: нет Всего: 137 |
Ребят, код написать я бы смог сам впринципе, тут в том-то и главная трудность - понять как сделать это и написать алгоритм. И еще, к сожалению, доп. массив использовать нельзя.
Помогите, если сможете, за мной не заржаваеет |
|||
|
||||
| volvo877 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2073 Регистрация: 15.11.2004 Репутация: 34 Всего: 116 |
1. Упорядочиваем массив по возрастанию/убыванию 2. Массив вида <1, 2, 3, 4, 5, 6, 7, 8> приводим к виду <1, 3, 5, 7, 8, 6, 4, 2>, то есть в первой половине его должны храниться только элементы с нечетными индексами отсортированного массива, упорядоченные по возрастанию, а во второй - только с четными индексами, упорядоченные по убыванию... Это сообщение отредактировал(а) volvo877 - 12.2.2007, 16:16 |
|||
|
||||
| JAPH |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 312 Регистрация: 8.1.2007 Где: Ленобласть Репутация: 12 Всего: 23 |
Если я правильно понял задачу, то мой алгоритм такой. Рассматриваем (не создаём, а просто рассматриваем) массив, содержащий суммы элементов нашего массива a, равноудалённых от концов массива:
Задача модифицирования a выражается в сортировке массива b. Ведь если мы упорядочим элементы b по возрастанию, то мы упорядочим суммы элементов a в требуемом порядке. Сортировка b может быть такой (пузырёк):
Теперь переложим эту сортировку на a:
Вот и всё. Чей способ проще - не знаю. Если что-то непонятно, уточняем, что конкретно вызывает затруднения, и спрашиваем. Это сообщение отредактировал(а) JAPH - 12.2.2007, 17:07 -------------------- Что непонятно - спрашиваем |
||||||
|
|||||||
| Strannik |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 25.1.2007 Репутация: 1 Всего: 2 |
JAPH, Всё это очень неплохо, но только в случае если требуется отсортировать по неубыванию. Если строго по возрастанию - обвалится на банальном тесте: "1 2 3 4 5 6". Твой алгоритм оставит массив без изменений, а это неверно.
П.С. Если я не так понял алгоритм - заранее прошу прощения. |
|||
|
||||
| JAPH |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 312 Регистрация: 8.1.2007 Где: Ленобласть Репутация: 12 Всего: 23 |
Да, тогда, пожалуй, ваш способ лучше.
Это сообщение отредактировал(а) JAPH - 12.2.2007, 22:34 -------------------- Что непонятно - спрашиваем |
|||
|
||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: нет Всего: 137 |
А вы учли, что чисел может быть нечетное количество? Могут быть все нули, все одинаковые и т.д.
В общем я так и не прочитал словестного алгоритма |
|||
|
||||
| Dov |
|
||||
![]() аСинизатор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1721 Регистрация: 10.5.2003 Где: Эрец-Исраэль Репутация: 50 Всего: 88 |
Предлагаю так. Ищем минимальный эл-т, и меняем его местами с крайним левым, увеличивая индекс крайнего левого эл-та, потом опять ищем минимальный эл-т среди оставшихся, и меняем его местами с крайним правым эл-том, уменьшая индекс крайнего правого эл-та и т.д., пока индексы правого и левого не сравняются. Короче, легче код написать, чем на пальцах показывать. Ну, что-нибудь такое, например.
-------------------- Тут вечности запах томительный, И свежие фрукты дешевые, А климат у нас – изумительный, И только соседи – #уевые. Игорь Губерман. |
||||
|
|||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |