웹사이트 검색

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 루프를 만들고 순차적으로 요소 검색을 시작합니다.
  • 컴파일러가 일치 항목(예: array[element] == 키 값)을 만나자마자 배열에서 해당 위치와 함께 요소를 반환합니다.
  • 입력과 일치하는 값이 없으면 -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)입니다.

배열의 크기가 n인 경우 검색 요소가 배열 끝에 있는 경우 최악의 시간 복잡도는 O(n)입니다.

결론

따라서 이 기사에서는 선형 검색 알고리즘을 이해하고 구현했습니다.