Rei’s Tech diary

[탐색] 선형 탐색 알고리즘 정리 (Linear Search) 본문

프로그래밍/Algorithm

[탐색] 선형 탐색 알고리즘 정리 (Linear Search)

Reiger 2025. 1. 14. 13:36

 

📌 선형 탐색(Linear Search) 알고리즘

- 배열이나 리스트에서 첫 번째 요소부터 마지막 요소까지 순차적으로 검사하여 원하는 값을 찾는 알고리즘

- 정렬 여부와 무관하다.

- 최악의 경우 시간복잡도가 \[ O(n) \]으로 매우 비효율적이다.

 

 

💡 선형 알고리즘 구현

 

#1. 반복문 방식

public class LinearSearch {
    //선형 탐색 알고리즘 (반복문 방식)
    public static int linearSearchIterative(int[] array, int target){
        for(int i = 0; i < array.length; i++){
            if(array[i] == target){
                return i;
            }
        }
        return -1;
    }

    public static void main(String[] args) {
        int[] array = {10, 20, 30, 40, 50};
        int target = 30;

        int result1 = linearSearchIterative(array, target);
        System.out.println("반복문 결과 " + (result1 != -1 ? "인덱스 : " + result1 : "값이 없음"));
        
    }
}

 

 

#2. 재귀 방식

public class LinearSearch {
    //선형 탐색 알고리즘 (반복문 방식)
    public static int linearSearchIterative(int[] array, int target){
        for(int i = 0; i < array.length; i++){
            if(array[i] == target){
                return i;
            }
        }
        return -1;
    }

    public static void main(String[] args) {
        int[] array = {10, 20, 30, 40, 50};
        int target = 30;
        
        int result2 = linearSearchReculsive(array, target, 0);
        System.out.println("재귀 결과 " + (result2 != -1 ? "인덱스 " + result2 : "값이 없음"));

    }
}