Algorithm
검색 트리 (Search Tree) 이해하기
n_0_jun
2025. 2. 20. 14:00
반응형

검색 트리는 데이터 구조의 핵심 요소 중 하나로, 효율적인 데이터 검색, 삽입, 삭제 작업을 가능하게 합니다. 이번 글에서는 검색 트리의 기본 개념과 대표적인 유형, 그리고 주요 작업과 효율성에 대해 알아보겠습니다.
1. 검색 트리의 기본 개념
레코드와 검색키
- 레코드 (Record): 개체에 대한 정보를 포함하는 데이터 단위입니다. 예를 들어, 사람의 이름, 주소, 전화번호 등이 포함된 정보가 하나의 레코드입니다.
- 필드 (Field): 레코드 내의 개별 정보 항목입니다.
- 검색키 (Search Key): 레코드를 고유하게 식별할 수 있는 필드입니다.
검색 트리란?
- 데이터를 특정 규칙에 따라 정렬하고 저장하여 레코드의 위치를 빠르게 찾을 수 있는 트리 형태의 데이터 구조입니다.
2. 이진 검색 트리 (Binary Search Tree, BST)
구조적 특징
- 각 노드는 하나의 키 값을 가집니다.
- 노드 간의 규칙:
- 왼쪽 자식의 키 값 < 부모 노드의 키 값
- 오른쪽 자식의 키 값 > 부모 노드의 키 값
주요 작업
- 검색 (Search):
- 루트 노드부터 시작하여 키 값을 비교하며 트리를 탐색합니다.
- 검색 키가 작으면 왼쪽 서브트리, 크면 오른쪽 서브트리를 탐색합니다.
- 삽입 (Insert):
- BST의 규칙을 유지하면서 적절한 위치에 새 노드를 추가합니다.
- 삭제 (Delete):
- 삭제할 노드의 자식 노드 개수에 따라 세 가지 경우로 나뉩니다:
- 리프 노드(자식이 없음): 단순히 삭제합니다.
- 자식이 하나: 자식 노드로 대체합니다.
- 자식이 둘: 오른쪽 서브트리에서 가장 작은 노드로 대체합니다.
- 삭제할 노드의 자식 노드 개수에 따라 세 가지 경우로 나뉩니다:
3. 트리의 균형과 효율성
왜 균형이 중요한가?
- 트리가 불균형하면 검색, 삽입, 삭제 작업의 효율성이 감소합니다.
- 시간 복잡도:
- 균형 잡힌 트리: O(log n)
- 불균형 트리: 최악의 경우 O(n)
4. 균형 유지 검색 트리
레드-블랙 트리 (Red-Black Tree)
- 이진 검색 트리의 변형으로, 각 노드에 빨강 또는 검정 색상을 부여하여 균형을 유지합니다.
- 삽입과 삭제 시 규칙에 따라 노드를 재배치하거나 색상을 변경하여 트리의 균형을 유지합니다.
B-트리
- 다중 자식 노드를 가지는 구조로, 디스크 기반 검색에 최적화되어 있습니다.
- 모든 노드가 균형을 유지하며, 검색, 삽입, 삭제 작업의 시간 복잡도는 O(log n)입니다.
5. 점근적 수행 시간 비교
트리 유형 평균 시간 복잡도 최악의 경우 시간 복잡도
이진 검색 트리 (BST) | O(log n) | O(n) |
레드-블랙 트리 | O(log n) | O(log n) |
B-트리 | O(log n) | O(log n) |
6. 다차원 검색 트리
일차원 vs. 다차원 검색
- 일차원 검색: 단일 키를 기준으로 검색합니다.
- 다차원 검색: 여러 키나 다차원 데이터를 기반으로 검색합니다. 대표적인 예는 KD-트리입니다.
결론
검색 트리는 데이터 검색과 정렬 작업의 효율성을 극대화할 수 있는 강력한 데이터 구조입니다. 특히, 레드-블랙 트리와 B-트리 같은 균형 유지 트리는 트리의 효율성을 보장합니다. 트리의 구조와 균형 유지를 이해하고 적절한 유형을 선택하면 다양한 문제를 효과적으로 해결할 수 있습니다.
반응형