Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

сиаод / 1-34 / 21.Поиск в упорядоченных таблицах. Двоичный поиск в массиве. Фибоначчиев поиск. Интерполяционный поиск

..pdf
Скачиваний:
80
Добавлен:
11.05.2015
Размер:
342.8 Кб
Скачать

21.Поиск в упорядоченных таблицах. Двоичный поиск в массиве. Фибоначчиев поиск. Интерполяционный поиск.

Найти элемент с нужным значением ключа. Эту задачу приходится решать с использованием массивов, списков, деревьев.

Существует два альтернативных способа поиска: последовательный и двоичный.

1.В последовательном списке может применяться только последовательный поиск в порядке следования указателей.

2.В двоичном дереве естественным является двоичный поиск.

Двоичный поиск:

Применяется для упорядоченных массивов. При двоичном поиске используется метод деления пополам. Поставим задачу так: найти наименьший индекс (указатель) компоненты списка со значением ключа, равным Х.

Алгоритм:

Binary Search (A[1..n],x)

1.i=1,j=1

2.repeat

3.k=[(i+j)/2]

4.if x>A[k] then i=k+1

5.else j=k-1

6.until (A[k]=x) or (i>j)

7.if A[k]=x then return k

8.else return 0

Число просмотров m = log2N.

При N = 100: последовательный поиск выполнится за 50 просмотров (m = 50), двоичный за 6,62 (m = 6,62)