while (Mas[i] <
while (Mas[i] < barrier) do i := i+1;
while (Mas[j] > barrier) do j := j-1;
if i ? j then begin
Swap{Mas[i], Mas[j]}; i := i+1; j:= j-1
end;
until i > j;
Partition := j
end;
Упражнение #1.
Напишите процедуру ShiftLeftArray, осуществляюшую сдвиг значений элементов вектора влево на одну позицию, причем параметров должно быть три - кроме вектора, задаются и левый, и правый индексы сдвигаемого участка (ниже нам понадобится именно такой вариант).
Почти та же проблема возникает с операцией удаления, поскольку уменьшить размеры массива тоже нельзя. Обычным решением является сдвиг значений, расположенных правее заданной ячейки, влево. По завершении сдвига в последнюю компоненту заносится какое-то условленное значение; скажем, для символьных векторов им может быть пробел, для целочисленных значений - нуль.
Упражнение #2.
Напишите процедуру DelArray, воспользовавшись процедурой ShiftLeftArray.
Вновь трудоемкость механизма пропорциональна длине сдвигаемого
Индекс
Элементарные функции
Линейные уравнения
Нелинейные уравнения
Случайные числа