선형 검색 알고리즘은 목록에서 특정 요소를 찾는 데 사용되는 간단한 방법입니다. 이 알고리즘은 원하는 요소를 찾거나 전체 목록을 탐색할 때까지 목록의 각 요소를 순차적으로 확인하여 작동합니다.
작동 방식
- 목록의 첫 번째 요소부터 시작합니다.
- 현재 요소를 대상 값과 비교합니다.
- 현재 요소가 대상 값과 같으면 알고리즘이 종료되고 요소의 위치를 반환합니다.
- 그렇지 않은 경우 목록의 나머지 요소를 계속 반복합니다.
- 대상 요소를 찾지 않고 전체 목록을 순회하는 경우 알고리즘은 찾을 수 없음을 나타내는 값을 반환합니다.
예
정수 목록이 있고 목록에서 숫자 34를 찾고 싶다고 가정해 보겠습니다.
목록: {12, 45, 67, 89, 34, 56, 23, 90}
- 첫 번째 요소에서 시작: 12. 원하는 번호가 아닙니다.
- 다음 요소로 이동: 45. 원하는 번호가 아닙니다.
- 나머지 요소(67, 89, 34)로 계속 진행합니다. 요소 34는 원하는 숫자와 일치합니다.
- 알고리즘이 종료되고 위치 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이 됩니다.