![]() |
![]() |
sheka |
![]()
Сообщение
#1
|
![]() Я. ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация: ![]() ![]() ![]() |
Нужно в массиве 2n элементов поменять последовательность элементов на
а1аn+1a2an+2...ana2n Препод говорил, что с помощью одной переменной этого сделать нельзя. (доп массив из n элементов - не интересно). Вот что получилось (один запоминается, а на его место ставится, но уже на свое место другой): Curr := 2; но работает только для некоторых, и процент работающих с ростом n уменьшается. Для неработающих: должен где-то быть вызов буфера, но этого я не делал, т.к. для этого, по моей фантазии надо как минимум еще один булевый 2n-2 массив, что еще хуже дополнительного массива. Неужели он был прав? Сообщение отредактировано: sheka - 1.11.2010 20:04 |
![]() ![]() |
sheka |
![]()
Сообщение
#2
|
![]() Я. ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация: ![]() ![]() ![]() |
Цитата сделать за один проход Я это подразумевал ![]() Цитата можно было бы обойтись и без буфера Товарищ преподаватель чуть-чуть бушует, если пользоваться такой арифметикой для массивов.Цитата Именно. Подобный "пустяк" Именно. ![]() И насчет "пустяк": вот код (Показать/Скрыть)
Цитата Для 12 элементов картинка такая, видно, что надо провести один циклический обмен по специальной траектории. Удачный пример ![]() ![]() ЗЫ: Предмет называется "Структуры Данных и Алгоритмы", и на нем нас учат делать все как можно быстрее, почему-то не сильно обращая внимание на память(но только в аспекте сравнения со скоростью). Сообщение отредактировано: sheka - 1.11.2010 20:03 |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 3:10 |