![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 | ||
Форумчанин
Регистрация: 12.04.2008
Сообщений: 105
|
![]()
Здравствуйте. Есть массив из целочисленных чисел, нужно написать такую функцию которая сдвигает его вправо или влево таким образом чтобы последние элементы перемещались на первые позиции.
Цитата:
Цитата:
|
||
![]() |
![]() |
![]() |
#2 |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,926
|
![]()
Либо не искал, либо сам не понимаешь что нужно искать, либо вообще не понимаешь ничего и ждёшь готового решения.
Последний раз редактировалось northener; 25.01.2015 в 02:24. |
![]() |
![]() |
![]() |
#3 | |
Форумчанин
Регистрация: 12.04.2008
Сообщений: 105
|
![]() Цитата:
Если знаете ответ, будьте добры подскажите. Вроде как, затем тут и сидят все) Я вижу вариант с 2мя массивами, но не считаю его оптимальным, хотел узнать как люди реализовывают такие задачи. =============== Спасибо за помощь и своевременный ответ. http://www.programmersforum.ru/showp...6&postcount=29 Последний раз редактировалось DarkHacker; 25.01.2015 в 02:28. |
|
![]() |
![]() |
![]() |
#4 | |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,926
|
![]() Цитата:
![]() Ответ знаю. Готовый код не дам. Но подскажу. Два массива не нужно. Нужна одна временная переменная типа элемента данного массива. |
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 12.04.2008
Сообщений: 105
|
![]()
Не думал что вы отпишите еще что-то и не заходил, но видимо сделал так же как вы советуете.)
Знаю что никого не удивлю, но вот такой код у меня получился, надеюсь кому-то будет полезен)) Код:
Последний раз редактировалось DarkHacker; 25.01.2015 в 03:23. |
![]() |
![]() |
![]() |
#6 |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,926
|
![]()
А зачем тут рекурсия?
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 12.04.2008
Сообщений: 105
|
![]()
Ну я хочу например вызвать сдвиг на 5 элементов, следовательно либо в цикле крутить и запоминать 5 элементов в массиве буфера, либо так сделать. Не думаю что есть принципиальная разница. Или есть? )
|
![]() |
![]() |
![]() |
#8 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
в любом случае двух вспомогательных элементов вполне достаточно. данная задача решается обычно одним из двух способов: 1) простой и неоптимальный. Пишем процедуру сдвига массива на 1 элемент. для сдвига на K элементов вызываем процедуру сдвига на 1 элемент K раз. 2) отпимальный - но чуть сложнее и алгоритмически и для отладки/понимания. пишем функцию(формулу), которая возвращает для заданого индекса (позиции) элемента новую позицию, на которой данный элемент должен стоять после сдвига на K элементов. последовательно "ПЕРЕМЕЩАЕМ" элементы в массиве N раз (N - размер массива) с старой позиции на новую. |
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Циклический сдвиг элементов массива (TurboPascal) | VladKB1 | Помощь студентам | 3 | 02.06.2014 22:46 |
Сдвиг элементов массива <-> | z768 | Общие вопросы Delphi | 11 | 26.03.2014 08:31 |
Сдвиг элементов массива (C++) | Nomicos | Помощь студентам | 4 | 24.01.2013 16:16 |
циклический сдвиг элементов массива | Carter | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 19.12.2011 19:54 |
Удаление элементов массива и сдвиг | Alex11223 | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 12.01.2011 20:01 |