Лінійний чи послідовний пошук – найпростіший з алгоритмів пошуку елементів в масиві.
Алгоритм полягає в обході всіх елементів масиву, як правило, зліва направо, і пошувняння їх з шуканим значенням. Якщо значення елементу і ключа співпадають, то пошук повертає індекс(позицію) елементу.
Оскільки лінійний алгоритм обходить масив послідовно, то він досить повільний.
Тим не менш, цей метод використовується для пошуку:
- на невеликих масивах даних;
- в потоковій обробці даних;
- пошуку мінімального та максимального значення масиву;
- на одиночних невпорядкованих великих масивах.
Програма для послідовного пошуку елементу масиву
{$CODEPAGE UTF8}
program SequentialSearch;
const
arrayLength = 10;
var
inputArray : array [1..arrayLength] of integer;
index, key: integer;
{функція для лінійного пошуку}
function LinearSearch(k : integer): integer;
var
i : integer;
begin
i := 1;
while (i <= arrayLength) do
begin
if inputArray[i] = k then
begin
LinearSearch := i;
Exit; {вихід з функції}
end;
i := i + 1;
end;
{якщо нічого не знайдено}
LinearSearch := -1;
end;
begin
randomize;
writeln ('Вхідний масив: ');
{заповнення масиву випадковими числами}
for index := 1 to arrayLength do
begin
inputArray[index] := random(100);
write (inputArray[index]:4);
end;
writeln;
write('Шукане значення ');
readln(key);
index := LinearSearch(key);
if index = -1 then
writeln ('Елемент не знайдено')
else
writeln ('Індекс елементу в масиві ', index);
readln;
end.
В функції використовується цикл while do, його можна переписати використавши цикл for.
Функція для лінійного пошуку з використанням циклу for
function LinearSearch(k : integer): integer;
var
i : integer;
begin
for i := 1 to arrayLength do
if inputArray[i] = k then
begin
LinearSearch := i;
Exit; {вихід з функції послідовного пошуку}
end;
{повертаємо -1 якщо нічого не знайдено}
LinearSearch := -1;
end;