[자료구조] 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최단 경로 알고리즘 음의 가중치가 없는 그래프에서 한 노드에서 다른 모든 노드까지의 최단 거리를 구하는 알고리즘이다. 방향 그래프, 무방향 그래프 모두 상관 없으나, 가중치가 음수인 edge가 하나라도 있으면 이 알고리즘은 사용할 수 없다. 최단 경로 문제의 유형 최단 경로의 문제 유형은 다음과 같다. Single-source (one-to-all) 하나의 출발 노드 s로부터 다른 모든 노드까지의 최단 경로를 찾아라 예) 다익스트라 알고리즘 Single-pair (one-to-one) 주어진 하나의 출발 노드 s로부터 하나의 목적지 노드 t까지의 최단 경로를 찾아라 최악의 경우 시간복잡도에서 Single-source 문제보다 나은 알고리즘이 없기 때문에 해당 유형 또한 다익스트라 알고리즘이 사용된다. A… -
[알고리즘] 최소비용 신장트리(MST) - Kruskal 알고리즘
[알고리즘] 최소비용 신장트리(MST) - Kruskal 알고리즘
2019.12.121. 최소비용 신장트리(MST, Minimum Spanning Tree)란? 먼저, 신장 트리(ST, Spanning Tree)는 사이클 없이 모든 노드를 연결하는 트리입니다. 모든 정점을 포함한다. 정점간 서로 연결되면서 사이클이 존재하지 않는 그래프이다. (트리의 조건이기도 하죠? 😉 틈새공부) 그래프에 여러 개의 신장 트리가 존재할 수 있는데, 이 중 간선의 가중치 합이 최소인 것을 최소비용 신장트리(MST)라 합니다. 2. Kruskal 알고리즘이란? Kruskal 알고리즘은 최소비용 신장트리(이하 MST)를 찾는 대표적인 알고리즘입니다. MST를 구하는 알고리즘으로 Prim 알고리즘도 있는데, Prim은 정점을 기준으로 한다면, Kruskal은 간선을 기준으로 합니다. 아래와 같은 그래프에서 M… -
[자료구조] 그래프(Graph)
[자료구조] 그래프(Graph)
2019.12.10
댓글을 사용할 수 없습니다.