Энциклопедия Turbo Pascal. Главы 1-4 - Последовательный поиск
ОГЛАВЛЕНИЕ
Страница 18 из 60
Последовательный поиск
Алгоритм последовательного поиска имеет очень простой вид.
Ниже представлена функция, которая выполняет поиск в символьном массиве заданной длины элемента с заданным значением ключа:
function SeqSearch(item: DataArray; count:integer;
key:DataItem):integer;
var
t:integer;
begin
t:=1;
while (key<>item[t]) and (t<=count) t:=t+1;
if t>count then SeqSearch:=0
else SeqSearch:=t;
end; { конец последовательного поиска }
Эта функция выдает либо значение индекса для найденного элемента массива, либо нулевое значение, когда требуемый элемент не найден.
При прямом последовательном поиске в среднем проверяются n/2 элементов. В лучшем случае будет проверяться только один элемент, а в худшем случае будут проверятся n элементов. Если информация размещается на диске, то поиск может быть очень долгим. Однако, если данные не отсортированы, то последовательный поиск является единственным возможным в данном случае методом поиска.