이진 탐색이란, 탐색 범위를 반으로 좁혀가며 빠르게 탐색하는 알고리즘이다.
이진탐색 vs 순차탐색
1) 순차탐색
순차탐색이란, 리스트 안에 있는 특정한 데이터를 찾기 위해 앞에서부터 데이터를 하나씩 차례대로 확인하는 방법이다.
즉, 이진탐색과는 구분되는 방법이다.
순차탐색은 주로 정렬되지 않은 리스트에서 데이터를 찾아야 할 때 사용된다. 리스트 내에 데이터가 아무리 많아도 시간만 충분하다면 항상 원하는 원소를 찾을 수 있다는 장점이 있다. 구현도 매우 간단하다.
/*논외로, 리스트 자료형에서 특정한 값을 가지는 원소의 개수를 세는 count() 메서드를 이용할 때도 내부에서는 순차 탐색이 수행된다.*/
2) 이진탐색
이진탐색은 배열 내부의 데이터가 정렬되어 있어야만 사용할 수 있는 알고리즘이다.
이진 탐색은 위치를 나타내는 변수 3개를 사용하는데 탐색하고자 하는 범위의 시작점, 끝점, 중간점을 사용한다.
찾으려는 데이터와 중간점 위치에 있는 데이터를 반복적으로 비교해서 원하는 데이터를 찾는 것이다.
차후 학습 후 관련 문제를 정리해보도록 하겠음!
'Algorithm' 카테고리의 다른 글
파라메트릭 서치(Parametric Search) (0) | 2022.07.20 |
---|---|
그리디[Greedy] (0) | 2022.07.20 |
브루트 포스[Brute Force] (0) | 2022.07.15 |
[백준] 10816번-숫자카드2 (Python) -> Counter함수 (작성중) (1) | 2022.07.05 |
[백준] 9020번-골드바흐의 추측 (Python) -> 소수찾기의 극한 (0) | 2022.07.04 |