728x90
선형 탐색은 가장 기본적인 탐색 알고리즘 중 하나로,
배열이나 리스트의 첫 번째 요소부터 시작하여 차례대로 모든 요소를 탐색하는 방법입니다.
원하는 값을 찾을 때까지 각 요소를 순차적으로 비교하며,
값을 찾으면 탐색을 종료하고 해당 요소의 인덱스를 반환합니다.
만약 끝까지 탐색했음에도 값을 찾지 못하면 보통 -1을 반환하여 값을 찾지 못했음을 알립니다.
특징
- 정렬되지 않은 배열에서도 작동합니다.
- 데이터의 위치에 상관없이 탐색 시간이 일정합니다.
- 구현이 간단하지만, 데이터가 많을 경우 비효율적일 수 있습니다.
예제
#include <iostream>
using namespace std;
// 선형 탐색 함수
int linearSearch(int arr[], int size, int target) {
for (int i = 0; i < size; i++) {
if (arr[i] == target) {
return i; // 값이 발견되면 인덱스를 반환
}
}
return -1; // 값이 배열에 없으면 -1 반환
}
int main() {
// 예제 배열
int arr[] = {10, 23, 45, 70, 11, 15};
int size = sizeof(arr) / sizeof(arr[0]);
// 찾고자 하는 값
int target = 70;
// 선형 탐색 함수 호출
int result = linearSearch(arr, size, target);
// 결과 출력
if (result != -1) {
cout << "값 " << target << "은(는) 인덱스 " << result << "에 있습니다." << endl;
} else {
cout << "값 " << target << "을(를) 배열에서 찾을 수 없습니다." << endl;
}
return 0;
}
이 코드는 선형 탐색의 기본적인 구현 방법을 보여주며,
다양한 상황에 맞게 응용할 수 있습니다.
형 탐색은 간단하지만 데이터 양이 많을 때는 비효율적일 수 있으므로,
데이터 특성과 크기에 따라 적절한 탐색 알고리즘을 선택하는 것이 중요합니다.
제 글이 도움이 되셨다면 댓글 & 공감 부탁드려요 😀
728x90
반응형
'Application > 기초' 카테고리의 다른 글
[기초] C++ 깊이 우선 탐색 (Depth-First Search, DFS) (0) | 2024.05.18 |
---|---|
[기초] C++ 이진 탐색 (Binary Search) (0) | 2024.05.17 |
[기초] C++ Linked List : 원형 이중 연결 리스트 (0) | 2024.05.15 |
[기초] C++ Linked List : 원형 연결 리스트 (0) | 2024.05.14 |
[기초] C++ Linked List : 양방향 연결 리스트 (0) | 2024.05.13 |