

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)