Перестановка элементов массива
Реверс массива
Практическая работа № 15 «Перестановка элементов массива»
Практическая работа № 16 «Линейный поиск в массиве»
Практическая работа № 17 «Сортировка»
Задача 2. Требуется выполнить реверс массива, т. е. переставить элементы массива в обратном порядке, так чтобы первый элемент стал последним, а последний — первым (рис. 4.2).
Рис. 4.2
С каким элементом нужно поменять местами элемент А [1] ? Элемент А [2]? Элемент А [i]?
Если индекс первого элемента в паре увеличивается на 1, а индекс второго элемента уменьшается на 1, что можно сказать о сумме индексов этих элементов?
В этой задаче сумма индексов элементов, участвующих в обмене, для всех пар равна N+1, поэтому элемент с номером i должен меняться местами с (N+l-i)-M элементом.
Выполните вручную следующий алгоритм для массива {1, 2, 3, 4} (N = 4). Объясните результат. Найдите ошибки в этом алгоритме (почему он не решает задачу 2?).
нц для i от 1 до N
поменять местами A[i] и А[N+1-i]
кц
Для того чтобы не выполнять реверс дважды, нужно остановить цикл на середине массива:
нц для i от 1 до div(N, 2)
поменять местами А[i] и A[N+l-i]
кц
Запишите в тетради операторы, которые нужно добавить в тело цикла. Для обмена используйте вспомогательную переменную с.
нц для i от 1 до div(N, 2) for i:=l to N div 2 do begin
• • • • • •
КЦ end;
Запишите в тетради другое решение задачи реверса массива, которое использует цикл с условием (пока, while).
Следующая страница Линейный поиск в массиве