Страница: 1 |
|
Вопрос: обработка одномерных массивов
|
Добавлено: 08.06.11 19:45
|
|
Автор вопроса: ден | ICQ: 373157323
|
помогите написать программу
Написать процедуру, в которой для заданного массива В, состоящего из 10ти элементов, его элементы перемещались бы на 7 позиций вправо.При этом 7 элементов из конца массива перемещаются вправо.
Ответить
|
Номер ответа: 2 Автор ответа: Artyom
Разработчик
Вопросов: 130 Ответов: 6602
|
Профиль | | #2
|
Добавлено: 08.06.11 23:10
|
Можно обобщить задачу.
Есть массив из N элементов. Нужно сместить все элементы вперед на M элементов. При этом те элементы, которые в результате смещения выходят за пределы массива, нужно переместить в его начало.
Необходим метод, который в исходном массиве переворачивает диапазон элементов зеркально
Reverse(array, startIndex, count)
Тогда задача решается следующим образом
- Reverse(array, 0, N)
- Reverse(array, 0, M)
- Reverse(array, M, N-M)
Доказательство и код не привожу ввиду их очевидности.
Кстати, при правильной реализации Reverse, все выполняется за O(n).
Ответить
|
Страница: 1 |
Поиск по форуму