Метод золотого сечения
При поиске методом золотого сечения аргумент поиска А сравнивает-
ся с ключом Ki, где i является золотым сечением интервала поиска. Сущ-
ность золотого сечения заключается в том, что если на плоскости имеет-
ся отрезок длиной а, то золотое сечение делит его на два отрезка соответственно длиной b и с так, что а/b = b/с.
Для уменьшения временных затрат при реализации вычисления золото-
го сечения используют константу, на которую надо разделить интервал а,
чтобы найти его золотое сечение. Эта константа равна
а/b = b/с = 1.619031....
Алгоритм поиска методом золотого сечения аналогичен алгоритму би-
нарного поиска(рис.3). Отличие состоит только в шаге вычисления номе-
ра I сравниваемого элемента, который в данном случае принимает вид:
I=|_(P-Q)/1,619031 _|+Q.
массиве ключей: 20 25 29 32 37 38 39 51 53 57 61 99.
Q=1,P=12,i=7,Ki=39: [20 25 29 32 37 38
Q=8,P=12,i=10,Ki=57: 20 25 29 32 37 38 39[51 53
Q=8,P=9,i=8,Ki=51: 20 25 29 32 37 38 39[
Поиск заканчивается удачно, ключ 51 имеет элемент с номером 8.
Второй пример на заставке. Проверить Р=4, Q=3
|
|
Лине́йная интерполя́ция — интерполяция алгебраическим двучленом P1(x) = ax + b функции f, заданной в двух точках x0 и x1 отрезка [a, b].
Геометрически это означает замену графика функции f прямой, проходящей через точки (x 0, f (x 0)) и (x 1, f (x 1)).
Уравнение такой прямой имеет вид:
отсюда для
Это и есть формула линейной интерполяции
Отличие интерполяционного поиска от предыдущих методов
заключается в том, что выбор очередного ключа Ki для сравнения с аргу-
ментом А зависит не только от Q и P, но и от значений ключей KQ и Kp в
нижней и верхней границах интервала поиска. Если аргумент поиска А на
очередном шаге лежит между KQ и KP, то ключ Ki выбирается на расстоянии
(P-Q)(A-KQ)/(KP-KQ) от Q.
Алгоритм интерполяционного поиска также аналогичен алгоритму би-
нарного поиска. Отличие состоит только в шаге вычисления номе-
ра I сравниваемого элемента, который в данном случае имеет вид:
I = |_ (P-Q)(A-KQ)/(KP-KQ) _| + Q.
Пример. Осуществить интерполяционный поиск аргумента 51 в массиве
ключей: 20 25 29 32 37 38 39 51 53 57 61 99.
Q=1,KQ=20,P=12,KP=99,i=5,Ki=37: [20 25 29 32
Q=6,KQ=38,P=12,KP=99,i=8,Ki=51: 20 25 29 32 37[38 39
Поиск закончен удачно.