left, right: index1):


left, right: index1): index1; var i, j: index1; barrier: item; begin barrier := Mas[(left + right) div 2]; i := left; j := right; repeat 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; Обратите внимание, что описание функции Max с тремя указанными параметрами делает возможным возврат наибольшего элемента не обязательно для всего массива, но также и любого его подмассива. Для этого при вызове достаточно заменить границы диапазона обработки, входящего в интервал 0..N-1. Мы еще встретимся с таким применением механизма, например, при обсуждении одного из алгоритмов сортировки вектора. Для второго варианта алгоритма, когда требуется установить местоположение искомого элемента в массиве, нужно лишь незначительно изменить обработку. Алгоритм E2-1 (2) function IndexMax (Mas: massive1; left, right: index1): index1; var i,
Индекс
Элементарные функции    Линейные уравнения    Нелинейные уравнения    Случайные числа


Hosted by uCoz