본문 바로가기
Development/Informatics

[자료구조]이진탐색트리-Binary Search Tree

by True Life 2014. 6. 26.

알고리즘 - 이진탐색


이진탐색(Binary Search)은 탐색 기법중 하나입니다.

이 알고리즘을 위해 우리는 이진트리(Binary Tree)를 사용하는데 이진트리는 아시다시피 다음 그림과 같습니다.



이진트리(Binary Tree)는 각 Node에 Sibling의 최대 개수가 2개입니다.




이 Binary Tree에

"좌측 노드에는 부모보다 작은 Value를, 우측 노드에는 부모보다 큰 Value를 갖는다."

라는 규칙을 정하면 이진 탐색 트리로 사용할 수 있습니다.


Binary Search Algorithm의 시간복잡도(Time Complexity)는 O(lg n)으로 탐색중 가장 빠릅니다.

(물론, O(1)의 Hash 탐색을 제외!!)


(Wikipedia 인용)

트리의 구현은 다양한 방법이 있지만 배열(Array)을 사용하는 것이 가장 편리합니다~(아무래도 익숙하니깐)
하지만 여기서는 포인터를 사용해봤습니다, 아무래도 메모리도 동적이구..
실제로 구현만 해놓으면 배열보다는 편리하기 때문입니다.

일단 기본 소스는 다음과 같구 이걸 구조적으로 분석해서 포스팅하겠습니다.









'Development > Informatics' 카테고리의 다른 글

[KOI]두부 모판 자르기(bean curd)  (0) 2016.10.13