СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Опорный конспект урока по теме "Перестановки элементов в одномерном массиве"

Категория: Информатика

Нажмите, чтобы узнать подробности

Опорный конспект урока по теме "Перестановки элементов в одномерном массиве"

Просмотр содержимого документа
«Опорный конспект урока по теме "Перестановки элементов в одномерном массиве"»

Перестановки элементов линейного массива

Можно выделить 3 основных алгоритма перестановок в линейном массиве.

  1. Перестановка (обмен местами) двух элементов в линейном массиве

(var a:array[1..n] of …).


buf:=a[k1];

a[k1]:=a[k2];

a[k2]:=buf;








  1. Перестановка (обмен местами) двух частей в линейном массиве с четным количеством элементов (var a:array[1..2*n] of …).

for i:=1 to n do

begin

buf:=a[i];

a[i]:=a[n+i];

a[n+i]:=buf;

end;









  1. Зеркальная перестановка (обмен местами) элементов в линейном массиве:

  • с четным количеством элементов (var a:array[1..2*n] of …).


for i:=1 to n do

begin

buf:=a[i];

a[i]:=a[2*n+1-i];

a[2*n+1-i]:=buf;

end;








  • с любым (четным или нечетным) количеством элементов

(var a:array[1..n] of …).

for i:=1 to (n div 2) do

begin

buf:=a[i];

a[i]:=a[n+1-i];

a[n+1-i]:=buf;

end;










Перестановки элементов линейного массива

Можно выделить 3 основных алгоритма перестановок в линейном массиве.

  1. Перестановка (обмен местами) двух элементов в линейном массиве

(var a:array[1..n] of …).


buf:=a[k1];

a[k1]:=a[k2];

a[k2]:=buf;








  1. Перестановка (обмен местами) двух частей в линейном массиве с четным количеством элементов (var a:array[1..2*n] of …).

for i:=1 to n do

begin

buf:=a[i];

a[i]:=a[n+i];

a[n+i]:=buf;

end;









  1. Зеркальная перестановка (обмен местами) элементов в линейном массиве:

  • с четным количеством элементов (var a:array[1..2*n] of …).


for i:=1 to n do

begin

buf:=a[i];

a[i]:=a[2*n+1-i];

a[2*n+1-i]:=buf;

end;








  • с любым (четным или нечетным) количеством элементов

(var a:array[1..n] of …).

for i:=1 to (n div 2) do

begin

buf:=a[i];

a[i]:=a[n+1-i];

a[n+1-i]:=buf;

end;