Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 풀이
- hashing
- 가치규범의 공공외교
- 챗봇
- 백준
- 백준 1246번
- 이항계수
- 1141번
- 백준 14501번
- 해설
- 백준 11050번
- BTREE
- 한반도평화와공공외교
- 해싱
- html
- 문제 풀이
- 1
- Python
- N과 M
- 파이썬
- 풍선터뜨리기
- DP 알고리즘
- 0의 개수
- 실버
- 연산자 문제
- B-tree
- 백준 1487번
- 주창형 공공외교
- CSS
- 알고리즘
Archives
- Today
- Total
SunFly의 코딩 및 정보 블로그
B-tree 알고리즘이란? 본문
다방향 탐색 트리를 이르는 말. 데이터 레코드의 순차적 처리와 직접적 처리를 모두 지원하는 다단계 트리 구조라고 정의되어 있다.
※ B-tree의 특징
- 삽입 및 삭제 알고리즘은 Tree가 Balance 되는 것을 보장한다. 즉, 삽입과 삭제가 일어나도 B-tree의 기본 구조를 지켜서 진행된다. (Balance : 모든 leaf 노드가 (거의) 같은 level에 속해야 한다.)
- Branching factor가 2 이상의 큰 값일 수 있다. ( -> 빠른 탐색 시간을 보장한다.)
- m-원 탐색 트리 성질을 만족해야 한다. (1. 탐색의 효율성을 증가 2. record들을 정렬된 순서로 출력한다.)
- 데이터의 저장 및 탐색이 가장 많이 이용되는 데이터 구조 중의 하나이다.
※B-tree의 정의(Definition)
- capacity order = d라는 값으로 구조가 정해진다.
- 각 노드는 2d개의 record와 2d+1개의 pointer를 저장하는 공간을 가진다.
- m-원 탐색 트리여야 한다. (m =2d+1)
- 루트 노드를 제외한 모든 노드는 d개 이상의 record (최대 record 수의 Half 이상)를 가져야 한다. (단, 루트노드는 1개 이상의 record를 가진다.)
- 모든 leaf 노드들은 같은 (depth) level에 존재해야만 한다. (balance 보장)
★ m원 탐색 트리
- 각 노드는 최대 m-1개의 record, m개의 pointer를 가진다.
- 이것들은 p0, rec0, p1, rec1, ........ , rec (m-2), p(m-1)의 순서로 배열된다.
- 각 노드는 처음부터 빈 곳 없이 채워져야 하며 마지막은 pointer이어야 한다.
- 임의의 노드에서 r(i)의 key는 p(i) sub-tree 내의 record의 key보다 크고, p(i+1) sub-트리의 모든 record의 key보다 작다. 모든 가능한 정수 i 에 대해 이 사실이 성립해야만 한다.
- ex) binary search tree(BTS)는 2-원 탐색트리이다.
'알고리즘' 카테고리의 다른 글
이진 탐색 트리(Binary Search Tree)란? (0) | 2021.10.11 |
---|---|
B-tree 구현 (C언어 구현) (0) | 2021.10.11 |
B-tree 삭제(Deletion) 알고리즘 (Redistribution/Merge 알고리즘) (0) | 2021.10.11 |
B-tree 탐색(searching or Retrieval) 알고리즘 (0) | 2021.10.11 |
B-tree 삽입(insertion) 알고리즘 (0) | 2021.10.10 |