Энциклопедия Turbo Pascal. Главы 1-4 Страница 18. Последовательный поиск
|
Страница 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 элементов. Если информация размещается на диске, то поиск может быть очень долгим. Однако, если данные не отсортированы, то последовательный поиск является единственным возможным в данном случае методом поиска.
|