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

선형 탐색이란 일렬로 된 자료를 처음부터 마지막까지 순서대로 탐색하는 방법입니다. 
가장 간단하고 직접적인 방법이며 정렬을 필요로 하지는 않지만 최악의 경우 배열 전체를 탐색해야 하므로 탐색 속도가 매우 느립니다. 
때문에 자료의 수가 적은 경우나 탐색이 빈번하지 않을경우에 적용 할 수 있습니다.

선형 탐색은 다음과 같이 구현 할 수 있습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    // 선형탐색의 경우 정렬의 여부는 중요하지 않다.
    // arr [] 배열의 처음부터 끝까지의 원소 값과 찾으려는 값(x)을 비교해 
    // 찾으려는 값이 위치한 배열의 인덱스를 반환한다. 만약 찾으려는 값이 없다면 -1을 반환한다.
    // 시간복잡도 O(n)
    
        
    int search(int[] arr, int x) {
        int size = arr.length;
        for (int i = 0; i < size; i++) {
            //배열을 순차적으로 탐색해 찾는 값(x)과 일치하는지 확인한다.
            if (arr[i] == x)
                return i;
        }
        //일치하는 값 없음.
        return -1;
    }
cs



'알고리즘/자료구조 > Searching' 카테고리의 다른 글

이진탐색(Binary search) 알고리즘  (0) 2016.03.01

+ Recent posts