Application/기초

[기초] C++ 선형 탐색 (Linear Search)

devsalix 2024. 5. 16. 09:42
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
반응형