-
[알고리즘] 선형 검색과 이진 검색CS기초/Algorithm, Data Structures 2022. 11. 13. 13:37728x90반응형
검색의 종류
- 배열 검색
- 연결 리스트 검색
- 트리 검색
1. 선형 검색 (linear search/ sequential search)
특징: 무작위로 늘어놓은 데이터 집합에서 검색
쉽게 말해 배열의 전체 요소를 모두 탐색하는 것을 뜻한다.
- 보초법: 선형검색의 비용을 줄이는 방법. 반복을 종료하는 판단 횟수를 줄이는 역할을 하는 것이 보초.
시간 복잡도: O(n)
2. 이진 검색(binary search) (분할정복법(divde and conquer 중 하나)
특징: 일정한 규칙으로 늘어놓은 데이터 집합에서 검색, 즉 시퀀스가 정렬(sort)되어있어야함.
중간 값과 찾으려는 값의 대소비교를 통해 범위를 절반씩 줄여 나감.
시간복잡도: O(logn)
길이가 n인 배열을 이진 탐색하면 n, n/2, n/4, n/8, ..., 1회 실행될 것이다. 즉, 실행된 탐색 횟수를 k번이라고한다면,
2^k = n
k = log2n
이 된다.
728x90반응형'CS기초 > Algorithm, Data Structures' 카테고리의 다른 글
[Leet Code] 27.Remove Element - Easy (0) 2023.08.03 [알고리즘] 정렬 알고리즘 : 합병정렬 (Merge sort) (0) 2023.06.27 [자료구조] 자료구조를 알아야하는 이유와 배열(list), 연결리스트(linked list) (0) 2023.04.01 [Leet Code] Two Pointers (투포인터): 876.Middle of the Linked List - Easy (0) 2023.01.02 [알고리즘] 투포인터(Two pointers)와 슬라이딩 윈도우(Sliding window) (0) 2022.11.13