| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
Tags
- mutable
- Data Structure
- Windows
- 알고리즘
- Python
- 문자열
- 오버로딩
- C++
- 이진 탐색 트리
- 트리
- 순회
- 연결 리스트
- 바이낸스
- 템플릿 함수화
- 숫자
- 비트코인
- 자료구조
- trading view
- SCM
- 기초
- #선물 #비트코인#알트코인#매매#코인#마진
- Basic
- linked list
- 전위
- 선물
- template
- BST
- 후위
- array
- Tree
Archives
- Today
- Total
Project Hub
[Data Structure] B-Tree 기초 본문
728x90
반응형
트리 기본 용어에 관하여는 아래의 글을 참고.
2022.08.27 - [Data Structure/Tree] - [Data Structure] Tree 기본
[Data Structure] Tree 기본
트리의 개념 비선형 자료구조 계층적 관계를 표현하는 자료구조 트리의 특징 하나의 루트 노드를 가짐 루트 노드와 자식 노드는 0개 이상의 자식 노드를 가짐 트리는 노드를 연결하는 간선으로
projecthub.tistory.com
B-Tree 란
- 트리 자료구조의 일종. 이진트리를 확장해 하나의 노드가 가질 수 있는 자식 노드의 최대 숫자가 2보다 큰 트리 구조.
B-Tree의 특징
1. 최대 M개의 자식을 가질 수 있는 B-Tree를 M차 B-Tree 라고 한다.

2. node 에는 2개 이상의 데이터가 들어갈 수 있고, 항상 정렬된 상태로 저장된다.
3. node의 데이터 수가 k개라면, 자식 노드의 수는 k+1개다.
- 아래는 3차 b-tree 일 경우, 데이터의 수가 k 개 일 때, 자식 노드의 최대 노드의 수를 표현한 것이다.

4. 이진 탐색 트리와 같이 각 데이터의 왼쪽 자식은 자신보다 작고, 오른쪽 자식은 자신보다 크다
5. M차 트리일 때, root 노드와 leaf 노드를 제외한 모든 노드는 최소 M/2개, 최대 M 개의 서브 트리를 갖는다.
3차 B-Tree 일 경우, 아래와 같이 자식 노드의 수가 4개가 되는 것은 불가능하다.

7. 노드 내에 데이터는 floor(M/2) - 1개부터 최대 M-1개까지 포함될 수 있다.
8. 모든 leaf 노드들은 같은 level에 있어야 한다.

B-tree를 사용하는 이유
- 편향 트리의 시간 복잡도 극복을 위함. balance를 유지하기 위함
- 일반적인 트리의 경우, 탐색에 평균 시간 복잡도는 O(logn)이다.
- 하지만, 편향 트리일 경우 최악의 시간 복잡도는 O(n)이다.
728x90
반응형
'Data Structure > Tree' 카테고리의 다른 글
| [Data Structure] B-Tree 구현 - 탐색, 삽입(1) (0) | 2022.09.20 |
|---|---|
| [Data Structure] Tree 이진 탐색 트리(BST) 구현 (2) | 2022.09.05 |
| [Data Structure] Tree 전위, 중위, 후위 순회 (2) | 2022.09.05 |
| [Data Structure] Tree 기본 (2) | 2022.08.27 |
Comments