1.3.3. Интерполяционный поиск. 1.3.4. Однородный бинарный поиск. Примечания. 1.3.5. Фибоначчиев поиск. 1.3.6. Блочный поиск
1. 3. 3. Интерполяционный поиск Главное отличие интерполяционного поиска от предыдущих методов заключается в том, что выбор очередного ключа K Алгоритм интерполяционного поиска также аналогичен алгоритму бинарного поиска (рис. 2). Отличие состоит только в шаге вычисления номера i сравниваемого элемента, который в данном случае имеет вид: I=(P-Q)(A-K Пример. Осуществить интерполяционный поиск аргумента 51 в массиве ключей: 20 25 29 32 37 38 39 51 53 57 61 99. Q=1, K 99]. Q=6, K Поиск закончен удачно, ключ 51 имеет элемент с номером 8.
1. 3. 4. Однородный бинарный поиск При однородном бинарном поиске аргумент поиска А сравнивается с ключом K Структурограмма алгоритма поиска приведена на рис. 3.
Примечания 1. При нечетном N необходимо ввести фиктивную запись X 2.
Пример. Осуществить однородный бинарный поиск аргумента 30 в массиве ключей: 20 25 29 32 37 38 39 51 57 61 99. i=6, H=6: [20 25 29 32 37 38 39 51 57 61 99]. i=3, H=3: [20 25 29 32 37]38 39 51 57 61 99. i=5, H=1: 20 25 29[32 37]38 39 51 57 61 99. i=4, H=0: 20 25 29[32]37 38 39 51 57 61 99. Так как H = 0, а K
1. 3. 5. Фибоначчиев поиск При реализации этого метода для нахождения интервала поиска используются числа Фибоначчи. Числа Фибоначчи получаются по рекуррентной формуле F В методе Фибоначчи, так же как и в однородном бинарном поиске, используются два указателя: i - текущее положение и величина H изменения, но они выбираются в соответствии с числами Фибоначчи. Значение i выбирается равным числу Фибоначчи F
Алгоритм Фибоначчиева поиска состоит из предварительного этапа и 4 шагов. Первоначально определяется такое число M> =0, что N + M + 1 = F Структурограмма алгоритма поиска приведена на рис. 4. Пример. Осуществить Фибоначчиев поиск аргумента 57 в массиве ключей: 20 25 29 32 37 38 39 51 53 57. Так как N=10, то ближайшим большим N числом Фибоначчи является число F 20 25 29 32 37 38 39 51[53 57]. I = 10, P = 1, H = 0: 20 25 29 32 37 38 39 51 53[57]. Искомый ключ имеет элемент с номером i = 10.
1. 3. 6. Блочный поиск Идея данного метода заключается в том, чтобы делить интервал поиска не на два подынтервала, а на несколько. Эти подынтервалы называются блоками. Вначале ищется блок,
Структурограмма алгоритма блочного поиска представлена на рис. 5.
Пример. Осуществить блочный поиск аргумента 30 в массиве ключей: 20 25 29 32 37 38 39 51 53 57 61 99. Q=1, P=12, H=3, i=3: [20 25 29 32 37 38 39 51 53 57 61 99]. i=6: 20 25 29 [32 37 38 39 51 53 57 61 99]. P=5, Q=4, H=1, i=4: 20 25 29 [32 37]38 39 51 53 57 61 99. P=3, Q=4, H=1, i=4: 20 25 29][32 37 38 39 51 53 57 61 99. Поиск заканчивается неудачно.
Воспользуйтесь поиском по сайту: ![]() ©2015 - 2025 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|