Однородный бинарный поиск

Else

Else

End

Begin

Begin

Else

End

Begin

Repeat

Begin

Var

Q,P,I,FLAG,A,KP,KQ:integer;

FLAG:=0;

P:=N;

Q:=1;

if P<Q then

FLAG:=1;

Writeln('Объект не найден');

I:=Trunc((P-Q)*(A-K[Q])/(K[P]-K[Q]))+Q; (меньшее или равное Х, если Х >=0, и большее или равное Х, если X<0)

if A=date[I] then

FLAG:=1;

Writeln('Объект успешно найден ' + I)

if A>date[I] then

Q:=I+1

P:=I-1;

end;

until FLAG=1;

end;

Всего положительных элементов N, date[0]=0.

Недостатки.

1.Нужно вычислять Kp и KQ, что особенно неудобно для файла.

2. Можно применять только для числовых уключей

При однородном бинарном поиске аргумент поиска А сравнивается с

ключом Ki, находящимся в середине интервала поиска. Отличие этого ме-

тода от бинарного поиска заключается в том, что вместо трех указате-

лей Q, i и P используются только два: текущее положение i и величина

его изменения H. После каждого сравнения A и Ki, не давшего равенства,

устанавливается

I=I+-; H=

Поиск заканчивается неудачно, если приращение становится равным 0.

Структурограмма алгоритма однородного бинарного поиска приведена

на рис.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: