[자료구조] B-트리
B-트리 (B-Tree)란?
DB 인덱스에 관해 공부하다가, 동적 Multi-Level Index에서 B-트리를 사용한다는걸 알게 되었다. B-트리에 대해 정리해보자.
B-트리는 데이터베이스와 파일 시스템에서 널리 사용되는 트리 자료구조의 일종이다.
이진 트리를 확장해 하나의 노드가 가질 수 있는 자식 노드의 최대 숫자가 2보다 큰 트리 구조.
방대한 양의 저장된 자료를 검색해야 하는 경우 검색어와 자료를 일일이 비교하는건 비효율적이다.
B-트리는 데이터를 정렬된 상태로 보관하고, 삽입 및 삭제를 대수 시간으로 할 수 있게 해준다.
B-트리의 모양은 다음과 같다.
B-트리의 성립조건은 다음과 같다.
- 노드가 가지는 데이터의 수가 N개라면, 자식 노드의 갯수는 N+1개이다.
- 노드가 가지는 데이터는 정렬된 상태여야 한다.
- 노드가 가지는 데이터를 기준으로 자식 노드가 가지는 데이터의 범위가 결정된다.
위의 그림을 예로 들어보자.
왼쪽 자식 트리가 가지는 범위 : 7 미만
중간 자식 트리가 가지는 범위 : [7, 16)
오른쪽 자식 트리가 가지는 범위 : 16 이상 - 리프 노드는 모두 같은 레벨에 존재해야 한다.
- 입력 자료는 중복될 수 없다.
'Algorithm > Theory' 카테고리의 다른 글
[알고리즘] 최소비용 신장트리(MST) - Prim 알고리즘 (0) | 2020.09.07 |
---|---|
[알고리즘] 최단 경로 (0) | 2020.08.24 |
[알고리즘] 최소비용 신장트리(MST) - Kruskal 알고리즘 (0) | 2019.12.12 |
[자료구조] 그래프(Graph) (0) | 2019.12.10 |
[자료구조] 서로소 집합(Disjoint-Set) (0) | 2019.11.13 |
댓글
이 글 공유하기
다른 글
-
[알고리즘] 최소비용 신장트리(MST) - Prim 알고리즘
[알고리즘] 최소비용 신장트리(MST) - Prim 알고리즘
2020.09.07 -
[알고리즘] 최단 경로
[알고리즘] 최단 경로
2020.08.24 -
[알고리즘] 최소비용 신장트리(MST) - Kruskal 알고리즘
[알고리즘] 최소비용 신장트리(MST) - Kruskal 알고리즘
2019.12.12 -
[자료구조] 그래프(Graph)
[자료구조] 그래프(Graph)
2019.12.10