Поиск по сайту:

Алгоритм линейного поиска и его реализация на C


Линейный поиск — это алгоритм последовательного поиска.

В этом алгоритме ключевой элемент ищется в заданном входном массиве в последовательном порядке.

Если ключевой элемент найден во входном массиве, он возвращает элемент.

Алгоритм линейного поиска

Linear_Search (массив X, значение i)

  • Установите j равным 1.
  • Если j > n, перейти к шагу 7.
  • Если X[j] == i, перейти к шагу 6
  • Затем увеличьте j на 1, т. е. j=j+1
  • Вернитесь к шагу 2.
  • Отобразить элемент i, найденный по определенному индексу i, затем перейти к шагу 8.
  • Элемент отображения не найден в наборе элементов ввода.
  • Выход/Конец

Псевдокод для линейного поиска

procedure LINEAR_SEARCH (array, key)

   for each item in the array
      if match element == key
         return element's index
      end if
   end for

end procedure

Реализация линейного поиска в C

  • Изначально нам нужно указать или принять элемент для поиска от пользователя.
  • Затем мы создаем цикл for и начинаем последовательный поиск элемента.
  • Как только компилятор обнаружит совпадение, т. е. массив[элемент] == ключевое значение, вернет элемент вместе с его позицией в массиве.
  • Если не найдено значений, соответствующих входным данным, возвращается -1.

#include <stdio.h> 

int LINEAR_SEARCH(int inp_arr[], int size, int val) 
{ 
	 
	for (int i = 0; i < size; i++) 
		if (inp_arr[i] == val) 
			return i; 
	return -1; 
} 


int main(void) 
{ 
	int arr[] = { 10, 20, 30, 40, 50, 100, 0 }; 
	int key = 100; 
	int size = 10; 
	int res = LINEAR_SEARCH(arr, size, key); 
	if (res == -1)
	printf("ELEMENT NOT FOUND!!");
    else
    printf("Item is present at index %d", res);
    
	return 0; 
} 

Выход:

Item is present at index 5

Временная сложность линейного поиска

В лучшем случае сложность равна O(1), если элемент найден на первой итерации цикла.

Временная сложность в наихудшем случае равна O(n), если искомый элемент находится в конце массива при условии, что размер массива равен n.

Заключение

Таким образом, в этой статье мы поняли и реализовали алгоритм линейного поиска.