Алгоритм последовательного поиска
Решение задачи поиска можно получить, воспользовавшись алгоритмом последовательного поиска. Псевдокод данного алгоритма представлен ниже. Алгоритм возвращает индекс элемента массива Array[], значение которого равно Value, когда такой элемент существует, или Null, когда такого элемента в массиве нет. Предполагается, что массив имеет LengthOfArray элементов.
Общий алгоритм
function Search(Value, Array[], LengthOfArray) {
if (LengthOfArray < 1) then return Null;
else {
CurrentIndex:=0;
while ((Value > Array[CurrentIndex]) and (CurrentIndex < LengthOfArray)) do
CurrentIndex:= CurrentIndex+1;
if (Array[CurrentIndex]=Value) then return CurrentIndex
else return Null;
}
}
Pascal
program primer;
const n=5;
var a: array [1..n] of integer;
i, currentIndex, result, p: integer;
begin
// заполнение массива целыми числами от 1 до n
for i:=1 to n do begin
a[i]:=i;
end;
// искомое значение
p:=5;
// вывод исходного массива
write('Исходный массив: ');
for i:=1 to n do begin
write ('a[', i, ']=>', a[i]:3, '; ');
end;
writeln;
// последовательный поиск
currentIndex:=1;
result:=-1;
while ((p>a[currentIndex]) and (currentIndex<n)) do begin
inc(currentIndex);
end;
if (a[currentIndex]=p) then result:=currentIndex;
// вывод результатов поиска
write('Результат поиска: ');
if (result<0) then write('Элемент не найден')
else write('Элемент найден на позиции ', result);
writeln;writeln;
end.