Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: обработка одномерных массивов Добавлено: 08.06.11 19:45  

Автор вопроса:  ден | ICQ: 373157323 
помогите написать программу
Написать процедуру, в которой для заданного массива В, состоящего из 10ти элементов, его элементы перемещались бы на 7 позиций вправо.При этом 7 элементов из конца массива перемещаются вправо.

Ответить

  Ответы Всего ответов: 2  

Номер ответа: 1
Автор ответа:
 ден



ICQ: 373157323 

Вопросов: 1
Ответов: 1
 Профиль | | #1 Добавлено: 08.06.11 19:55
Написать процедуру, в которой для заданного массива В, состоящего из 10ти элементов, его элементы перемещались бы на 7 позиций вправо.При этом 7 элементов из конца массива перемещаются в начало .вот это задание рассмотрите

Ответить

Номер ответа: 2
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #2 Добавлено: 08.06.11 23:10
Можно обобщить задачу.
Есть массив из N элементов. Нужно сместить все элементы вперед на M элементов. При этом те элементы, которые в результате смещения выходят за пределы массива, нужно переместить в его начало.

Необходим метод, который в исходном массиве переворачивает диапазон элементов зеркально
Reverse(array, startIndex, count)

Тогда задача решается следующим образом

  1. Reverse(array, 0, N)
  2. Reverse(array, 0, M)
  3. Reverse(array, M, N-M)


Доказательство и код не привожу ввиду их очевидности.
Кстати, при правильной реализации Reverse, все выполняется за O(n).

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам