코디잉

02_선형 검색(linear search) 본문

자료구조&알고리즘/이론공부

02_선형 검색(linear search)

yong_ღ'ᴗ'ღ 2022. 8. 19. 00:17

- 선형 검색(linear search): 키 값을 갖는 요소를 만날 때까지 맨 앞부터 순서대로 요소 검색

- 복잡도: O(n)

- 검색 종료 조건 ( 둘 중 하나라도 성립되면 종료됨)

① 검색한 값 발견 못하고 배열 끝까지 검색 (-1 반환)

② 검색할 요소 발견 (처음 발견한 요소의 인덱스 반환)

 

- 반복할 때마다 위의 종료 조건 2개를 모두 판단 → 이 비용을 반으로 줄이는 방법 : 보초법

: 검색하고자 하는 키 값을 배열의 맨 마지막 요소로 저장해둠(보초)

→ 사용자가 길이 7인 배열을 생성한다고 하면, 길이가 8인 배열을 만들어서 마지막요소에 보초 저장해둠

: 값을 찾으면, 그 값이 보초인지 아닌지 확인 (보초면 검색 실패이므로 -1 반환)

: 위의 검색 종료 조건 ①번 필요없어짐

static int seqSearch(int[] arr, int n, int key) {
    arr[n] = key;
    int i = 0;
    for (i = 0; i < n; i++)
        if (arr[i] == key)
            break;
    return i == n ? -1 : i;
}

'자료구조&알고리즘 > 이론공부' 카테고리의 다른 글

06_재귀 알고리즘  (0) 2022.08.26
05_큐(queue)  (0) 2022.08.19
04_스택(stack)  (0) 2022.08.19
03_이진 검색(binary search)  (0) 2022.08.19
01_배열  (0) 2022.08.18
Comments