B 트리

IT위키
Doha (토론 | 기여)님의 2021년 9월 16일 (목) 22:33 판 (→‎조건)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)
Balanced Tree, B-Tree, B Tree

개요[편집 | 원본 편집]

  • 자가 균형 트리(Self Balancing Tree)[1]의 일종.

조건[편집 | 원본 편집]

  • 차수가 m인 B 트리는 아래의 조건을 만족해야 한다.
    • 모든 노드는 최대 m개의 자식들을 가진다.
    • 루트노드와 리프노드가 아닌 모든 노드는 최소 m/2개의 자식을 가진다.
    • 루트노드는 2개 이상의 자식을 가진다.
    • k개의 자식을 가진 노드는 k-1개의 키를 가진다.
    • 즉, 자식을 가진 노드는 최소 m/2-1개에서 최대 m-1개의 키를 가진다.
    • 모든 리프노드들은 같은 높이에 있어야 한다.
    • 모든 노드들은 키와 자식노드에 대한 포인터로 이루어져 있다.

특징[편집 | 원본 편집]

  • 탐색 시간 복잡도 : O(logN)
  • 노드의 삽입 또는 삭제 연산 후에도 정렬된 자료구조를 보장한다.

비트리의 장단점[편집 | 원본 편집]

장점 단점
  • 노드의 삽입/삭제 후에도 균등한 응답 속도를 보장
  • 삽입/삭제 시 균형 유지를 위해 복잡한 연산 필요

같이 보기[편집 | 원본 편집]

  • B+ 트리: 순차검색 향상을 위해 Index Set과 Data Set을 구분
  • B* 트리: 삽입 시 빈번한 노드 분할에 따른 연산 감소
  1. 모든 리프노드의 높이를 항상 같게 유지하는 트리