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. Вновь трудоемкость механизма пропорциональна длине сдвигаемого
Индекс
Элементарные функции    Линейные уравнения    Нелинейные уравнения    Случайные числа


Hosted by uCoz