Вход | Регистрация



Сдвиг элементов массива

Сдвиг элементов массива
Я
   nikoslav
 
16.11.17 - 19:05
Дан массив из m элементов. Необходимо сдвинуть элементы с a по b на n позиций. При этом нельзя создавать новые переменные кроме счетчика цикла. Переменные m,a,b нельзя менять.

Получается нужно менять индекс,указать на сколько позиций. Элементы добавлять нельзя.
 
 
   Cyberhawk
 
1 - 16.11.17 - 19:26
Держись там
   Woldemar177
 
2 - 16.11.17 - 19:27
ТС похоже начал или Кнута читать или сессию здавать
   H A D G E H O G s
 
3 - 16.11.17 - 19:28
Удачи, чё.
   Cyberhawk
 
4 - 16.11.17 - 19:32
Лабораторные походу
   Брудвар
 
5 - 16.11.17 - 19:33
(0) Нельзя создавать переменные значительного размера, типа массивов? Или нельзя вообще использовать ни одного лишнего байта?
Оптимизировать по количеству перестановок нужно?
   Cyberhawk
 
6 - 16.11.17 - 19:36
(5) Перестановки не нужны - нужно тупо сдвинуть, как Я понял. Если там на новом месте есть элемент, то его перезатирать
   Cyberhawk
 
7 - 16.11.17 - 19:39
Ну а если сдвиг циклический, то вот: http://codelab.ru/task/cycle_shift/
   Брудвар
 
8 - 16.11.17 - 19:39
(6) Образуется пустое место, и затрутся другие элементы. Я думаю так не должно быть.
   Брудвар
 
9 - 16.11.17 - 19:40
(7) Там временные переменные используются
   Cyberhawk
 
10 - 16.11.17 - 19:41
(9) Ну это для затравки мною было дано )
 
 Рекламное место пустует
   Александр056
 
11 - 16.11.17 - 20:58
при смещении, последний элемент должен стать первым? получается что его выталкивают в начало?
   Александр056
 
12 - 17.11.17 - 14:41
постановку можно уточнить?  недоговорил по условиям. Потому как в нынешней постановке задача не зависит от индексов a и b. Неважно, какие индексы ты задашь, всегда получишь один и тот же результат.
   Широкий
 
13 - 17.11.17 - 14:46
ЕСли просто сдвинуть то Вставить(ИндексA)
   dezss
 
14 - 17.11.17 - 14:56
b+n<m?
или допускается циклический сдвиг?
   фросия
 
15 - 17.11.17 - 15:04
перезаписать элементы внутри массива без доп переменных можно если тип у них число. если ссылочный тип то придётся с индексами придумывать что-то...
   Александр056
 
16 - 17.11.17 - 15:08
(14) вот мне так и показалось, обычный циклический сдвиг
   dezss
 
17 - 17.11.17 - 15:15
Для массива состоящего из чисел

й = a;
Пока й <= b Цикл
    Массив[й] = Массив[й] + Массив[b+n-Цел((b+n)/m)*m];
    Массив[b+n-Цел((b+n)/m)*m] = Массив[й] - Массив[b+n-Цел((b+n)/m)*m];
    Массив[й] = Массив[й] - Массив[b+n-Цел((b+n)/m)*m];
    й = й + 1;
КонцЦикла
   dezss
 
18 - 17.11.17 - 15:33
(17) тьфу...
не
[b+n-Цел((b+n)/m)*m]
а
[й+n-Цел((й+n)/m)*m]
   Александр056
 
19 - 17.11.17 - 15:45
да но про числа не написано...
   dezss
 
20 - 17.11.17 - 16:01
(19) если любые элементы, то никак...только если знаешь тип элементов.
   john90
 
21 - 17.11.17 - 16:20
(0) зачем этот бред????
   john90
 
22 - 17.11.17 - 16:21
1сик не для этого разрабатывали
   Wirtuozzz
 
23 - 17.11.17 - 16:24
(0) вот бы такие стандарты были в 1с на разработку.
   PCcomCat
 
24 - 17.11.17 - 16:28
Припоминаю,что есть несколько методов: пузырьковый, сдвига и т.д. Какой-то из них можно без переменных.
   john90
 
25 - 17.11.17 - 16:28
(23) зачем? глупость
   Buster007
 
26 - 17.11.17 - 17:19
Как я понял условие, например:
Есть массив м состоящий из 10 элементов:
 а1, а2,.. , а10
Необходимо сместить элементы 3, 4, 5 на 5 позиций

таким образом, т.к. количество элементов в массиве нельзя изменять, то
для первого шага элементы в массиве
а10, а1, а2, а3,.. а9
для второго шага
а9, а10, а1,... а8

Непонятно, зачем нужно знать, что хранит массив в этой задаче.
   Михаил Козлов
 
27 - 17.11.17 - 17:27
(26) Есть такая задача: для 2-х чисел а и б переприсвоить, НЕ ИСПОЛЬЗУЯ ДРУГИЕ ПЕРЕМЕННЫЕ. Для чисел это можно (17), а если это любые переменные, то непонятно как без "буфера".
   Buster007
 
28 - 17.11.17 - 17:35
(27) да-да, уже подумал над этим )
   Сияющий в темноте
 
29 - 17.11.17 - 22:10
переменная-это адрес в памятм
аосенять переменные-переставиь адреса?
   Сияющий в темноте
 
30 - 17.11.17 - 22:11
а сдвиг,наверное,предполагался циклический
   Bigbro
 
31 - 17.11.17 - 22:15
если нет переменных и памяти то остается стэк и регистры процессора. еще можно с шиной поиграться, про внешние устройства ничего сказано не было.
   Bigbro
 
32 - 17.11.17 - 22:17
кстати в х86 системе команд с 486 точно а может и раньше уже присутствуют расширения для работы с массивами
   Александр056
 
33 - 20.11.17 - 08:57
вопрос зачем мне нзнать про а и б элементы? если я начинаю сдвигать какой-либо элемент, то двигается весь массив.
 
 
   Сияющий в темноте
 
34 - 20.11.17 - 09:45
сдвигать подмассив в массиве для этого и границы подмассива даны
   lodger
 
35 - 20.11.17 - 09:49
зависит от языка на котором пишешь лабу.


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует