sample) do i :=
sample) do
i := i+1;
Search := i
end;
type
index = 1..N; {N>1}
massive1 = array [index] of index;
procedure RandomN (var Mas: massive1);
var i, K: index;
begin
for i := 1 to N do Mas[i] := i;
Randomize;
for i := N downto 2 do begin
K := Random(i) + 1;
Swap (Mas[K], Mas[i]);
end;
end;
Ясно, что возврат функцией значения N свидетельствует об отсутствии образца в массиве.
Упражнение #5.
Напишите функцию SearchLast, возвращающую индекс последнего (первого с конца) вхождения образца в вектор.
Легко представить ситуацию, когда требуется обнаружить все вхождения образца в вектор, но тогда алгоритм уже ничем не будет отличаться от последовательного перебора E1-1.
Ничего нового в отношении трудоемкости алгоритма E2-2 сказать нельзя: его асимптотическая эффективность та же, что и у последовательного перебора, а именно - O(n). Если нас интересует более точная оценка, то ее дает вероятностный подход, и результат таков: при поиске образца среди
Индекс
Элементарные функции
Линейные уравнения
Нелинейные уравнения
Случайные числа