min then
min:ai;
end;
Вставка x на k-ое место
Var a: array 1. . n1 of. . .
. . .
for i:n downto k do
ai1:ai;
ak:x;
. . .
Удаление k-ого элемента
. . .
for i:k to (n-1) do
ai: ai1;
. . .
Инвертирование элементов
. . .
for i:1 to (n div 2) do
begin
х:ai;
ai: an-i1;
an-i1:х;
end;
. . .
Ключевые моменты в типовых алгоритмах:
oo Выбор по условию. В качестве условия может проверяться значение элемента массива на четность, кратность элемента какому-либо числу, положительность, отрицательность, равенство нулю. Может проверяться также и значение индекса элемента массива (например, элементы, стоящие на четных местах и др. ).
oo Максимальный (минимальный) элемент. Кроме максимального элемента часто требуется найти и индекс максимального элемента:
if aimax then begin
max:ai;
imax:i;
end;
oo Вставка x на k-ое место. Перестановка элементов (для освобождения "места" для вставляемого элемента) происходит с конца массива - последний элемент передвигается на "пустое место", на его место передвигается предпоследний элемент и т. д.
oo Инвертирование элементов. Цикл работает n/2 раз, так как за один проход мы меняем сразу два элемента местами.
3 Задачи использованием типовых алгоритмов обработки одномерных массивов
Задача. На плоскости изображено N прямоугольников (рис. 1). Каждый прямоугольник задан координатами левой нижней и правой верхней вершин. Определить, имеют ли прямоугольники общую площадь.
Рис. 1. N прямоугольников
Идея решения:
Если:
oo максимальная координата по оси Х левых нижних вершин прямоугольников будет меньше минимально
Страницы: << < 7 | 8 | 9 | 10 | 11 > >>