우당탕탕 개발일기

[알고리즘] 이분탐색 본문

What I Learned/etc.

[알고리즘] 이분탐색

rilee 2022. 3. 28. 10:15
728x90

이진(이분) 탐색(Binary Search)이란

- 정렬되어있는 배열에서 데이터를 찾으려고 할 때 탐색 범위를 절반씩 줄여가며 데이터를 탐색하는 방법이다.

- '정렬되어있는 배열'이 필수 조건! 구현할 때 배열을 정렬시키는게 먼저 이루어져야한다.

- 시작과 끝, 그리고 그 중간을 나타내는 변수를 사용하여 탐색한다.
   left, right, mid 내지는 start, end, mid를 사용하는 듯 하다!

 

탐색 과정

이진 탐색과 순차 검색의 데이터 탐색 과정 차이

찾으려는 데이터와 중간점 위치에 있는 데이터를 반복적으로 비교해서 원하는 데이터를 찾는 것이 이진 탐색의 과정이다.

 

구현 과정은

1️⃣ 우선 데이터를 정렬한다(필수!!)

2️⃣ 시작값(start)과 끝값(end)으로 중간값(mid)을 구한다.

3️⃣ 이 mid와 구할 값을 비교한다.
    ☑️ 구할 값 > mid이면 left = mid + 1이고

    ☑️ 구할 값 < mid이면 right = mid - 1이다.

4️⃣ left > right이 될 때까지 반복!

 

 

📍 참고

https://velog.io/@kimdukbae/이분-탐색-이진-탐색-Binary-Search

 

[알고리즘] 이분 탐색 / 이진 탐색 (Binary Search)

이진 탐색(이분 탐색) 알고리즘은 정렬되어 있는 리스트에서 탐색 범위를 절반씩 좁혀가며 데이터를 탐색하는 방법이다.이진 탐색은 배열 내부의 데이터가 정렬되어 있어야만 사용할 수 있는

velog.io

 

https://wootool.tistory.com/62

 

[알고리즘] 이분 탐색

이분 탐색  탐색 기법중에 하나로 원하는 탐색범위를 두 부분으로 분할해서 찾는 방식입니다. 그렇기에 원래의 전부를 탐색하는 탐색 속도에 비해 빠릅니다. 이분 탐색을 하는 방법은 left , right

wootool.tistory.com

 

728x90

'What I Learned > etc.' 카테고리의 다른 글

WIL  (0) 2022.08.08
한글 OCR 참고 자료  (0) 2022.07.28
[HTTP] HTTP 메소드 GET, POST  (0) 2022.02.08
[firebase] firebase import 오류  (0) 2022.02.07
WIL 4  (0) 2022.02.06