Назад (Информатика).

Алгоритм последовательного поиска

Решение задачи поиска можно получить, воспользовавшись алгоритмом последовательного поиска. Псевдокод данного алгоритма представлен ниже. Алгоритм возвращает индекс элемента массива 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.