C++의 선형 검색 (Linear Search) 알고리즘- 설명, 예제 및 코드

선형 검색 알고리즘은 목록에서 특정 요소를 찾는 데 사용되는 간단한 방법입니다. 이 알고리즘은 원하는 요소를 찾거나 전체 목록을 탐색할 때까지 목록의 각 요소를 순차적으로 확인하여 작동합니다.

작동 방식

  1. 목록의 첫 번째 요소부터 시작합니다.
  2. 현재 요소를 대상 값과 비교합니다.
  3. 현재 요소가 대상 값과 같으면 알고리즘이 종료되고 요소의 위치를 ​​반환합니다.
  4. 그렇지 않은 경우 목록의 나머지 요소를 계속 반복합니다.
  5. 대상 요소를 찾지 않고 전체 목록을 순회하는 경우 알고리즘은 찾을 수 없음을 나타내는 값을 반환합니다.

정수 목록이 있고 목록에서 숫자 34를 찾고 싶다고 가정해 보겠습니다.

목록: {12, 45, 67, 89, 34, 56, 23, 90}

  1. 첫 번째 요소에서 시작: 12. 원하는 번호가 아닙니다.
  2. 다음 요소로 이동: 45. 원하는 번호가 아닙니다.
  3. 나머지 요소(67, 89, 34)로 계속 진행합니다. 요소 34는 원하는 숫자와 일치합니다.
  4. 알고리즘이 종료되고 위치 34, 즉 4를 반환합니다.

C++의 예제 코드

#include <iostream>  
#include <vector>  
  
int linearSearch(const std::vector<int>& arr, int target) {  
    for(int i = 0; i < arr.size(); ++i) {  
        if(arr[i] == target) {  
            return i;  
        }  
    }  
    return -1;  
}  
  
int main() {  
    std::vector<int> numbers = {12, 45, 67, 89, 34, 56, 23, 90};  
    int target = 34;  
  
    int result = linearSearch(numbers, target);  
  
    if(result != -1) {  
        std::cout << "Element " << target << " found at position " << result << std::endl;  
    } else {  
        std::cout << "Element " << target << " not found in the array" << std::endl;  
    }  
  
    return 0;  
}  

주어진 예에서 우리는 linearSearch 정수 목록에서 숫자 34를 찾는 함수를 사용했습니다. 결과는 목록에서 34번째 위치(0부터 시작하는 위치) 또는 숫자를 찾을 수 없는 경우 -1이 됩니다.